Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Работа со шрифтами в Win32API.






 

HFONT — дескриптор шрифта

Для выбора шрифта вызывается функция ChooseFont. Эта функция создает стандартную панель выбора атрибутов логического шрифта.

Функци ChooseFont объявлена следующим образом:

BOOL ChooseFont(LPCHOOSEFONT lpcf);

Параметр lpcf указывает на структуру типа CHOOSEFONT, которая содержит данные инициализации панели.

Структура CHOOSEFONT описана следующим образом:

typedef struct

{

DWORD lStructSize;

HWND hwndOwner;

HDC hDC;

LPLOGFONT lpLogFont;

INTiPointSize;

DWORD Flags;

DWORD rgbColors;

LPARAM lCustData;

LPCFHOOKPROC lpfnHook;

LPCTSTR lpTemplateName;

HINSTANCE hInstance;

LPTSRT lpszStyle;

WORD nFontType;

WORD _MISSING_ALIGNMENT_;

INTnSizeMin;

INTnSizeMax;

}CHOOSEFONT;

 

23. Понятие о платформе.Net и среде разработки Visual Studio. Основные особенности C#.

 

В C# всё пишется в пространствах имен.

namespace < имя>

 

Внутри пространства могут быть только другие пространства и классы.

Базовые типы данных — тоже классы.

 

Классы бывают:

• ссылочными (class < имя> {...}):

• при создании объекта создается ссылка на класс; при копировании ссылки в ссылку переписывается конкретно ссылка;

• нессылочными (struct < имя> {...}):

• при копировании объекта в объект копируется весь класс.

 

Перед всеми инициализациями и объявлениями указывается уровень инкапсуляции.

 

Статические элементы не имеют обращений к их переменным и содержат только статические функции и переменные.

 

Обращения происходят только через точку.

Внутри одного пространства можно обращаться просто по имени объекта, между пространствами — с указанием имени пространства.

 

Подключение стандартного пространства имен:

using namespace < имя>

 

Синтаксис совпадает с C++.

 

24. Базовые типы данных C#. Преобразования базовых типов данных в тип String.

тип размер диапазон

Byte 8 бит 0 до 255

Short 16 бит -32768 до 32767

Int 32 бит -2147483648 до 2147483647

Long 64 бит -9223372036854775808 до 9223372036854775807

Char 16 бит

Float 32 бит -3.4× 1038 до +3.4× 1038, точность 7 знаков

Double 64 бит ±5.0× 10− 324 до ±1.7× 10308, точность 15-16 знаков

 

преобразование с помощью метода a.ToString(); или Convert.ToString(a);

 

25. Ссылочные классы и структуры в C#, создание экземпляров (объектов) ссылочных классов. Пространства имен в C#.

 

В C# всё пишется в пространствах имен.

namespace < имя>

 

Внутри пространства могут быть только другие пространства и классы.

Базовые типы данных — тоже классы.

 

Классы бывают:

• ссылочными (class < имя> {...}):

• при создании объекта создается ссылка на класс; при копировании ссылки в ссылку переписывается конкретно ссылка;

• нессылочными (struct < имя> {...}):

• при копировании объекта в объект копируется весь класс.

 

Перед всеми инициализациями и объявлениями указывается уровень инкапсуляции.

 

Статические элементы не имеют обращений к их переменным и содержат только статические функции и переменные.

 

Обращения происходят только через точку.

Внутри одного пространства можно обращаться просто по имени объекта, между пространствами — с указанием имени пространства.

 

Подключение стандартного пространства имен:

using namespace < имя>

 

26. Понятие о перечислениях в C#.

 

Тип перечисления (называемый также перечислением) предоставляет эффективный способ определения набора именованных интегральных констант, который можно назначить переменной. Например, предположим, что нужно определить переменную, значение которой должно представлять день недели. Имеется только семь имеющих смысл значений, которые может принимать переменная. Для определения этих значений можно использовать тип перечисления, который объявлен с использованием ключевого слова enum.


Создание enum < имя перечисления> {< список переменных> }
обращение < имя перечисления>.< имя переменной>

 

27. Особенности типа String в C#. Преобразование строки в базовые типы данных.

 

объявление

string s1 = " Строка";

string s2 = new string('s', 5); //строка sssss

 

Оператор ‘+’ служит для объединения строк

s3= “hello”+”world”;

sstr=s1+s2;

 

Оператор [] служит для доступа к определенному символу

char ch=str[2];

 

Строку можно преобразовать в число, воспользовавшись методами в классе Convert. Такое преобразование можно использовать, к примеру, при получении числовых входных данных из аргументов командной строки. В следующей таблице перечислены некоторые из методов, которые можно использовать.
Числовой тип Метод
float ToSingle(String)
double ToDouble(String)
short ToInt16(String)
int ToInt32(String)
long ToInt64(String)

Также можно преобразовать значение типа string в значение других типов с помощью методов Parse или TryParse. Если строка имеет недопустимый формат, метод Parse создает исключение, а метод TryParse не создает исключение, но возвращает значение false.

 

int a= Int32.Parse(“-10”);

 

28. Работа с массивами в C#.

 

Бывают только динамическими и являются ссылочными классами.

 

Объявление:

< тип> []< имя>;

< имя> =new< тип> [< размер> ]; //одномерный массив

 

< тип> [, ]< имя>;

< имя> =new< тип> [< столбцы>, < строки> ];

 

Обращение:

< имя> [< индекс> ];

< имя> [< и1>, < и2> ];

 

Методы массивов:

• добавлять элемент;

• удалять по индексу;

• минимальный/максимальный элемент;

• сортировка;

• количество элементов;

• прочее.

 

29. Визуальные классы в C#. События визуальных классов. Класс Form. Создание собственных классов на основе класса Form.

Представляет окно или диалоговое окно, которое составляет пользовательский интерфейс приложения.

Пространство имен: System.Windows.Forms

A Form является представлением любого окна, отображаемого в приложении. Form Класс может использоваться для создания стандартных, средства, не имеет границ и перемещаемых окон. Можно также использовать Form класса для создания модальных окон, таких как диалоговое окно. Специальный вид формы, формы многодокументного интерфейса (MDI), может содержать другие формы, называемые дочерних MDI-форм. MDI-формы, создается путем установки IsMdiContainer Свойства true. Дочерние MDI-формы создаются с помощью установки MdiParent свойства родительской MDI-формы, которая будет содержать дочернюю форму.

 

30. Понятие об элементах управления в C#. Общие свойства элементов управления. Классы TextBox, Label, Button.

Свойство Описание
Имя (Nаme) Имя элемента управления, которое используется для его идентификации в программах VBA, макрокомандах и т. д.
От левого края (Left) Определяет положение левого края элемента управления относительно раздела формы или отчета. Значения данного свойства задаются в режиме конструктора форм в окне свойств или в программе VBA с помощью числовых выражений. В программе значение данного свойства задается в твипах
От верхнего края (Тор) Определяет положение верхнего края элемента управления относительно раздела формы или отчета. Значения данного свойства задаются в режиме конструктора форм в окне свойств или в программе VBA с помощью числовых выражений. В программе значение данного свойства задается в твипах
Ширина границы (BorderWidth) Определяет ширину границы элемента управления. Данное свойство может принимать следующие значения: 0 - Сверхтонкая (Hairline), 1 - 1 пункт (1 pt), 2 - 2 пункта (2 pt), 3 - 3 пункта (3 pt), 4 - 4 пункта (4 pt), 5 - 5 пунктов (5 pt), 6 - 6 пунктов (6 pt)
Тип границы (BorderStyle) Определяет тип границы элемента управления. Значения данного свойства могут быть следующие: 0 - Отсутствует (Transparent), 1 - Сплошная (Solid), 2 - Штриховая (Dashes), 3 - Пунктирная (Short dashes), 4 - Точечная (Dots), 5 - Редкоточечная (Sparse dots), Штрих-пунктирная (Dash dot), 6 - Штрих-точечная (Dash dot dot)
Оформление (SpecialEffect) Определяет способ объемного представления элемента управления путем установки одного из значений: 0 - Обычное (Flat), 1 - Приподнятое (Raised), 2 - Утопленное (Sunken), 3 - Вдавленное (Etched), 4 - С тенью (Shadowed), 5 - Рельефное (Chiseled). Внешний вид различных вариантов оформления можно посмотреть в конструкторе форм с помощью кнопки Оформление (Special Effect) на панели инструментов Формат (Formatting)
Тип фона (BackStyle) Задает цвет фона элемента управления видимым или прозрачным путем установки значений: 0 - Обычный (Normal) или 1 - Прозрачный (Transparent). Видимым является цвет формы, на которой расположен элемент управления
Цвет фона (BackColor) Определяет цвет фона элемента управления. Значение данного свойства задается в конструкторе форм с помощью кнопки Цвет заливки/фона (Fill/Back Color) на панели инструментов Форматирование (Formatting)
Всплывающая подсказка (ControlTipText) Определяет текст всплывающей подсказки, выводимой на экран, когда указатель мыши задерживается над элементом управления. Значение данного свойства представляет собой строку длиной не более 255 символов
Текст строки состояния (StatusBarText) Определяет текст, выводимый в строке состояния, когда элемент управления имеет фокус. Значение данного свойства представляет собой строку длиной не более 255 символов
Доступ (Enabled) Определяет возможность получения фокуса элементом управления путем установки атрибутов: Да (True) и Нет (False)
Вывод на экран (Visible) Определяет возможность отображения на экране элемента управления с помощью установки значений: Да (True) или Нет (False)
Блокировка (Locked) Определяет возможность изменения данных в элементе управления путем установки атрибутов: Да (True) и Нет (False)
Переход пo Tab (TabStop) Определяет, можно ли перевести фокус на элемент управления с помощью клавиши Tab: Да (True) и Нет (False)
Подпись (Caption) Определяет текст, выводимый на кнопке, и надписи. Значением является строка длиной не более 2048 символов
Индекс перехода по Tab (TabIndex) Определяет позицию элемента управления в последовательности перехода фокуса в форме при нажатии клавиши Tab. Значением данного свойства являются целые числа, лежащие в диапазоне от 0 (для первого элемента управления) до общего числа элементов управления формы минус 1.

 

TextBox: объект для текста и его редактирования.

• Multiline

• < obj name>.Lines

• < obj name>.Lines.Count

• < obj name>.Lines[< index> ]

• < obj name>.Font

• < obj name>.BackColor

• < obj name>.ForeColor

 

Button: кнопка.

• < obj name>.Text

• < obj name>.Click

 

Label: Предоставляет текстовую метку для элемента управления и обеспечивает поддержку клавиш доступа.

 

31. Работа со стандартными диалоговыми окнами в C#.

 

Стандартные методы:

.ShowDialog - открывает соответствующее диалоговое окно. Функция возвращает значение перечисления диалоговой записи DialogResult: None, OK, Cancel, Abort, Retry, Ignore, Yes, No.

Имя метода Утв. кнопка Окно
.OpenFileDialog Open FileName
.SaveFileDialog Save FileName
.FolderBrowseDialog OK SelectedPath
.ColorDialog OK Color
.FontDialog OK Font, Color

Font

Color

• A

• R

• G

• B

.BackColor

.ForeColor

If (< objname>.ShowDialog==DialogResult.OK) {}

 

32. Работа с окном сообщений в C#.

 

статический класс MessageBox

MessageBox.Show() - метод для отображения окна сообщение

перегрузки

MessageBox.Show(текст);

MessageBox.Show(текст, заголовок);

MessageBox.Show(текст, заголовок, кнопки);

кнопки Ok, OkCancel, AboutReptyIgnore, YesNoCancel, YesNo, ReptyCancel

 

33. Средства для создания главного и контекстного меню в C#.

 

Объект ContextMenuStrip можно сопоставить с любым элементом управления. Щелчок правой кнопкой мыши будет автоматически выводить на экран контекстное меню. Объект ContextMenuStrip можно отобразить программным образом с помощью метода Show. Объект ContextMenuStrip поддерживает события Opening и Closing с возможностью отмены, чтобы обрабатывать динамическое заполнение и ситуации с несколькими щелчками. Объект ContextMenuStrip поддерживает изображения, установку флажков для элементов меню, текст, клавиши доступа, сочетания клавиш и вложенные меню.
Контекстные меню обычно используются для объединения различных элементов из меню MenuStrip формы, что помогает пользователю в заданном контексте приложения. Например, можно использовать контекстное меню, присвоенное элементу управления TextBox, чтобы предоставить элементы меню для изменения шрифта текста и поиска текста в элементе управления, а также функции буфера обмена для копирования и вставки текста. Кроме того, в контекстном меню можно отобразить новые объекты ToolStripMenuItem, которые расположены вне MenuStrip, чтобы предоставить команды, зависящие от ситуации, которые не подходят для отображения в меню MenuStrip.
Обычно контекстное меню отображается, когда пользователь щелкает правой кнопкой мыши элемент управления или форму. Многие видимые элементы управления, а также сама форма Form, обладают свойством Control.ContextMenuStrip, которое привязывает класс ContextMenuStrip к элементу управления, отображающему контекстное меню. Объект ContextMenuStrip может использоваться несколькими элементами управления.

 

34. Класс DataGridView в C#.

Отображает данные в настраиваемой сетке.

Пространство имен: System.Windows.Forms

.Columns.Count,.Row.Count //кол-во столбцов/строк

.Columns

.Add(< header>)

.Add(< name> < header>)

.Columns[< index> or < name> ]

.Rows

.Rows[< index> ]

 

35. Класс Chart в C#.

Используется в качестве корневого класса элемента управления Chart.

Пространство имен: System.Windows.Forms.DataVisualization.Charting

Chart: (диаграммы и графики)

.Line //ломаная линия

.Spline //гладкая линия

.Series //коллекция наборов данных

.Series[< index> or < name> ]

.Points

.AddXY(< x>, < y>)

.Clear

 

36. Класс RichTextBox в C#.

Предоставляет элемент управления полем форматированного текста Windows.

Пространство имен: System.Windows.Forms

RichTextBox: объект для текста с Rich форматированием.

• Формат RTF;

• < obj name>.SelectionFont

• < obj name>.SelectionColor

• < obj name>.LoadFile

• < obj name>.SaveFile

• < obj name>.Text

• < obj name>.RTF

 

37. Классы ListBox и ComboBox в C#.

Представляет элемент управления Windows для отображения списка элементов.

Пространство имен: System.Windows.Forms

ListBox: объект для строк с текстом без редактирования.

• < obj name>.SelectedIndex

• < obj name>.Items

• < obj name>.Items.Count

• < obj name>.Items[< index> ]

• < obj name>.Items.Add

• < obj name>.Items.RemoveAt(< index>)

• < obj name>.Click //событие при щелчке

• < obj name>.DoubleClick //событие при двойном щелчке

• Представляет элемент управления, предназначенный для выбора значения, с раскрывающимся списком, который можно отображать и скрывать нажатием принадлежащей этому элементу управления кнопки со стрелкой.

ComboBox: выпадающий список со строками.

• < obj name>.Text //отображается в строке

• < obj name>.Items //отображаются в выпадающем списке

• < obj name>.Click //событие при щелчке

• < obj name>.DoubleClick //событие при двойном щелчке

• < obj name>.SelectedIndexChange //событие при изменении выбранного пункта

 

38. Класс TreeView в C#.

 

TreeView: объект с древообразной структурой.

• Каждый узел является отдельным объектом класса TreeNodeCollection;

• PathSeparator используется для разделения узлов в классе;

• < obj name>.SelectedNode //выделенный пункт

• < obj name>.Nodes //набор корней дерева

TreeNode: объект узла внутри TreeView.

• < obj name>.Name

• < obj name>.Text

• < obj name>.Index //номер пункта конкретной коллекции

• < obj name>.Level //уровень вложения

• < obj name>.Parent //родительский узел

• < obj name>.FullPath //путь к узлу в дереве

TreeNodeCollection: совокупность дочерних узлов внутри другого.

• < obj name>.Nodes

• < obj name>.Nodes.Count

• < obj name>.Nodes.Add(< string>)

• < obj name>.Nodes.Add(< TreeView obj>)

• < obj name>.Nodes.Add(< name/key>, < string>)

• < obj name>.Nodes.Insert(< index>, < string>)

• < obj name>.Nodes.RemoveAt(< index>)

• < obj name>.Nodes.Clear

 

39. Основы работы с файлами в C#.

FileMode:

Параметр Файл сущ. Файл не сущ.
Append Добавление Создание
Create Пересоздание Создание
CreateNew Ошибка Создание
Open Открытие Ошибка
OpenOnCreate Открытие Создание и открытие

FileAccess:

Параметр Действие
Read Только чтение
ReadWrite Чтение-запись
Write Только запись

FileShare:

Параметр Действие
Inheritable Наследование потока дочерним процессом
None Полный запрет для других процессов
Read Только для чтения
ReadWrite Для чтения-записи
Write Только для записи

 

File - позволяет работать с файлами без файловых потоков.

.OpenRead (< filename>);

.OpenWrite (< filename>);

.ReadAllBytes (< filename>);

.WriteAllBytes (< filename>, < buffer array>);

.ReadAllText (< filename>, < encoding>) и др. перегрузки, по дефолту юникод;

.WriteAllText (< filename>, < buffer>, < encoding>);

.ReadAllLines (< filename>, < encoding>) - массив типа string;

.WriteAllLines (< filename>, < buffer array>, < encoding>);

.Create (< filename>);

.CreateText (< filename>);

•. Delete (< filename>);

.Copy (< fl1>, < fl2>);

.Move (< fl1>, < fl2>);

 

40. Особенности работы с бинарными файлами в C#.

 

systemIO -

FileStream (< filename>, < FileMode>, < FileAccess>, < FileShare>)

 

Объекты и методы класса FileStream:

.Read (< array>, < offset>, < amount>) - тип byte, последовательное считывание байтов из файла;.

.Write (< array>, …) - тип byte, запись в файл;

.ReadByte () - считывает байт с текущей позиции;

.WriteByte () - записывает байт на текущую позицию;

.Length () - длина в байтах;

.Close () - закрытие потока.

BinaryReader (< FileStream>) и BinaryWriter (< FileStream>):

.ReadByte () - считывает и возвращает значение типа byte;

.ReadByte (< amount>) - возвращает массив типа byte;

.ReadChar ();

.ReadDouble ();

.ReadInt32 ();

• …

•. Write (< buffer>) - перегруженная запись;

 

41. Основы работы с изображениями в C#.

 

Image - абстрактный класс

Bitmap - точечный класс; объект для виртуального, не видимого на экране изображения; по существу хранятся пиксели.

Bitmap(< picture>) - может быть существующим объектом любого из двух классов.

Bitmap(< width>, < height>)

Bitmap.Width

Bitmap.Height

Bitmap.GetPixel(< x>, < y>) - возвращает структуру типа Color

Bitmap.SetPixel(< x>, < y>, < color>)

Color.FrontArgs(< A>, < R>, < B>, < C>)

.Save(< filename>)

PictureBox - прямоугольник с изображением

PictureBox.Image

PictureBox.Load(< filename>)

PictureBox.Image.Width

PictureBox.Image.Height

Pen (namespace System.Drawing)

.Pen(< color>)

.Pen(< color>, < line_width>)

.Pen(< brush>)

.Pen(< brush>, < line_width>)

Brush

.TestBrush

.SolidBrush(< color>)

Pens

Brushes

Graphics - ссылочный класс с методами для рисования

< object>.CreateGraphics() - возвращает объект класса Graphics

Graphics.FromImage(< picture>) - возвращает объект класса Graphics

< object>.Refresh()

Graphics.DrawLine(< brush>, < x1>, < y1>, < x2>, < y2>)

Graphics.DrawLine(< pen>, < point1>, < point2>)

Graphics.DrawRectangle(< pen>, < x>, < y>, < width>, < height>)

Graphics.DrawEllipse(< pen>, < x>, < y>, < width>, < height>)

Graphics.DrawImage(< picture>, < x>, < y>)

Graphics.FillRectange(< brush>, < x>, < y>, < width>, < height>)

Graphics.FillEllipse(< brush>, < x>, < y>, < width>, < height>)

 

42. Разработка MDI приложений в C#. Доступ к объектам дочерних форм из родительской формы.

 

MDI приложения - приложения со множеством дочерних окон внутри главного.

 

По пунктам меню главного окна возможна работа с дочерними окнами.

Объявлять общедоступные ссылки требуемого типа достаточно для работы главного окна с дочерними. В конструкторе им следует также присвоить те объекты, которые находятся на защищённом уровне.

Существует стандартная заготовка для таких приложений.

 

ParentForm.IsMDIContainer=true

ChildForm.MDIParent=ParentForm;

 

43. События и их аргументы в C#.

 

Общий синтаксис прототипа обработчика события:

void < handler_name> (object sender, < arg_class> e)

object - исходный родительный класс для всех стандартных ссылочных классов, здесь - объект, с которым произошло событие

(< real_transformation>) sender

(Button.sender).Width

object:

•.GetType()

•.ToString():

Возвращает < namespace>.< class>

•.Equals()

•.ToString() отдельно:

Возвращает < namespace> < text>

Общая группа событий:

• Event.Args:

• MouseEventArgs

• MouseMove

• MouseUp

• MouseClick

• MouseDoubleClick

•.Location

•.Button

•.Left

•.Right

•.Middle

•.None

• KeyEventArgs

• KeyDown

• KeyPress

• KeyUp

•.KeyCode

•.A,.B…

•.Shift

•.Control

•.Alt

• PaintEventArgs - перерисовка экрана

•.Graphics - объект класса Graphics; связан с объектом, с которым происходит событие

У всех визуальных объектов есть метод.Refresh, вызывающий перерисовку объекта и всех объектов, установленных на нем().

События ячеек DataGridView:

• DataGridViewCellArgs

• CellClick

• CellDoubleClick

• CellEnter

• CellEndEdit

• CellLeave

•.RowIndex

•.ColumnIndex

События ячеек DataGridView с мышью:

• DataGridViewCellMouseEventArgs

• CellMouseClick

• CellMouseDoubleClick

• Cell…

События пунктов TreeView:

• TreeNodeMouseEventArgs

•.Node

• NodeMouseHover

• NodeMouseClick

• Node…

Обработчики событий конкретных объектов можно привязывать к объектам программно и изменять их.

< object>.< event> [+|-]=< func_name>;

 

44. Понятие об исключениях в C#. Обработка исключений.

 

Exception - стандартный ссылочный класс для перехвата ошибок выполнения.

< …>.Exception

Ошибки могут возникнуть при выполнении функций и операций.

try{

}

Для перехвата после try нужно один или несколько блоков catch:

catch(< exc class> < arg>){

< handling>

}

После catch может присутствовать блок finally:

finally{

}

Message - строка, содержание которой - краткое объяснение возникшей ошибки.

Перехват ошибок, возникающих при записи в действительную переменную значения из текстового поля:

double x;

try{

x=Convert.ToDouble(TexbBox1.Text);

}

//OverflowException - исключение переполнения.

//FormatException - исключение неправильного формата.

catch(OverflowException error1)

{

Message.Show(" Overflow! ");

}

catch(FormatException error1)

{

Message.Show(" Not a number! ");

}

Можно использовать для обработки всех исключений сразу:

catch(Exception error1)

{

MessageBox.Show(p.Message);

}

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.