Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Работа со шрифтами в Win32API. ⇐ ПредыдущаяСтр 3 из 3
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.
27. Особенности типа String в C#. Преобразование строки в базовые типы данных.
объявление string s1 = " Строка"; string s2 = new string('s', 5); //строка sssss
Оператор ‘+’ служит для объединения строк s3= “hello”+”world”; sstr=s1+s2;
Оператор [] служит для доступа к определенному символу char ch=str[2];
Строку можно преобразовать в число, воспользовавшись методами в классе Convert. Такое преобразование можно использовать, к примеру, при получении числовых входных данных из аргументов командной строки. В следующей таблице перечислены некоторые из методов, которые можно использовать. Также можно преобразовать значение типа 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.
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.
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 поддерживает изображения, установку флажков для элементов меню, текст, клавиши доступа, сочетания клавиш и вложенные меню.
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:
FileAccess:
FileShare:
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); }
|