Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Аналогично можно продолжить разработку главного меню приложения.Содержание книги
Похожие статьи вашей тематики
Поиск на нашем сайте
Создание контекстного меню Для создания контекстного меню приложения поместите на форму элемент управления contextMenuStrip. В результате появится конструктор для создания контекстного меню. Рисунок 3.44- Форма с элементом contextMenuStrip Создадим первый пункт меню. Для этого в первое пустое поле, где в данный момент содержится надпись «Вводить здесь», вводим имя нового пункта, например «Копировать». Затем добавим пункт меню «Вставить» и пункт «Выход». Рисунок 3.45- Форма с элементом contextMenuStrip
Двойным щелчком мыши по пункту меню создадим обработчики событий выбора каждого пункта меню. На этом будем считать, что наше первое контекстное меню создано и теперь давайте проверим, как оно работает. Запускаем приложение и нажимаем правую кнопку мыши. Но сколько бы вы сейчас не нажали правую кнопку мыши, в результате ничего не произойдёт, так как в данный момент мы не выполнили ещё одно важное действие. Необходимо открыть окно свойств для формы и выбрать свойство contextMenuStrip (в данный момент оно имеет значение (нет)). Выбрав это свойство, установите в него значение contextMenuStrip1.
Рисунок 3.46- Свойств формы contextMenuStrip Снова запускаем приложение и нажимаем правую кнопку мыши.
Рисунок 3.47- Пример контекстного меню
Как видим на рисунке 3.47, меню работает. Аналогично меню можно создать панель инструментов toolStrip. Рисование на форме В клиентской области формы можно не только размещать элементы управления, но и выполнять рисование. В Framework.Net реализован расширенный графический интерфейс GDI+, обладающий широким набором возможностей. В пространство System::Drawing и System.Drawing2D включено большое количество классов, которые позволяют выполнить рисование в форме. Для рисования в формах нужно иметь объект класса Graphics, методы которого позволяют выполнять рисование в формах, и такие инструменты рисования, как – цвет, перо, кисть, шрифт. Класс Graphics – это основной класс, с помощью которого выполняется рисование. Создание объектов класса Graphics выполняется не обычным способом, с помощью операции gcnew, а с помощью методов CreateGraphics(). Методы рисования используют такие специальные инструменты, как: - цвет (color) – задает цвет пикселей области рисования; - перо (pen) – задает тип (шаблон) линии, с помощью которой выполняется рисование графического объекта; - кисть (brush) – задает шаблон заполнителя замкнутых областей формы; - шрифт (font) – задает способ рисования символов.
Класс перьев Pen Для описания перьев имеется класс Pen. Создание объекта Pen выполняется с помощью операции gcnew, при этом можно сразу задать цвет линии: System::Drawing::Pen^P=gcnew System::Drawing::Pen(Color::Black); Основным свойством данного класса является DashStyle, с помощью которого задается стиль линии, значения перечисления DashStyle, такие, как Solid (сплошная), Dot (точка), Dash (тире), DashDot (тире-точка), DashDotDot (тире-точка-точка). P->DashStyle::set(Drawing::Drawing2D::DashStyle::DashDotDot); Толщину линии можно изменить с помощью свойства Width: P->Width=5; Вместо создания нового пера можно использовать свойство статического класса Pens, в котором описаны системные перья толщиной в 1 пиксель. Например, Pens::Blue – перо голубого цвета толщиной в 1 пиксель.
Класс кистей Brush Для работы с одноцветными кистями имеется статический класс Brushes, в котором заданы одноцветные кисти стандартных цветов. Например: Brushes::Red – кисть для закраски сплошным красным цветом. Кроме того можно создать собственную кисть класса SolidBrush, для которой можно задать собственный цвет заданной интенсивностью. Цвет и его интенсивность (прозрачность) задается методом FromArgb объекта Color: Color col=Color::FromArgb(alpha, сolor); где - параметр alpha – задает прозрачность цвета. Чтобы создать непрозрачный цвет, установите для alpha значение 255.Чтобы создать полупрозрачный цвет, установите для alpha любое значение от 1 до 254. - параметр сolor – задает базовый цвет на основе которого создается новый. Например: Color customColor = Color::FromArgb(255, Color::Blue); SolidBrush^ Bsh = gcnew SolidBrush(customColor); Создана кисть Bsh непрозрачного голубого цвета. Для создания кисти класса HatchBrush со стандартным геометрическим рисунком можно создать объект данного класса, для которого выбрать узор, цвет рисунка и цвет фона: System::Drawing::Drawing2D::HatchBrush^ Brsh = gcnew System::Drawing::Drawing2D::HatchBrush (System::Drawing::Drawing2D::HatchStyle::Cross, Color::Aqua,Color::Red); Где Cross – узор, Aqua – цвет линий узора, Red –цвет фона. Класс шрифтов Font Для выполнения вывода текста в клиентской области формы нужно указать используемый шрифт, который задаются с помощью класса Font. При создании объекта класса Font задается тип шрифта и его размер. Кроме того можно задать стиль шрифта. Например: System::Drawing::Font^fnt = gcnew System::Drawing::Font ("Times New Roman", 24); Строка с названием шрифтов, которые установлены на компьютере может содержать такие названия, как "Times New Roman", "Arial" или "Courier New". Третьим параметром можно задать стили шрифта, такие как: Regular (обычный, по умолчанию), Bold (жирный), Italic (курсив), Underline (подчеркнутый), Strikeout (перечеркнутый). Например: System::Drawing::Font^fnt = gcnew System::Drawing::Font ("Courier New", 12,FontStyle::Bold | FontStyle::Italic);
Методы рисования В классе Graphics имеются следующие три основные группы методов рисования: 1) методы рисование текста; 2) методы рисование линий и 3) методы рисование и заполнения фигур. Рисование текста Для вывода текста на экран относительной левой верхней точки можно использовать следующий метод: DrawString(Текст, шрифт, кисть, координаты точки); Рассмотрим пример вывода текста на форму нажатием кнопка: private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) { Graphics ^gf = CreateGraphics(); System::Drawing::Font^fnt = gcnew System::Drawing::Font ("Times New Roman", 24); SolidBrush^ shBsh = gcnew SolidBrush(Color::Red); gf->DrawString("Вывод текста!",fnt,shBsh,50,50); } Пример формы после нажатия кнопки "Текст" приведен на рисунке 3.48. Рисунок 3.48 – Результат вывода текста Для рисования текста под углом вначале необходимо перенести начало координат в левый-верхний угол области вывода, выполнить поворот на заданный угол и только затем выполнить вывод текста. Например: private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) { Graphics ^gf = CreateGraphics(); System::Drawing::Font^fnt = gcnew System::Drawing::Font ("Times New Roman", 24); SolidBrush^ shBsh = gcnew SolidBrush(Color::Red); gf->DrawString("Вывод текста!",fnt,shBsh,50,50); } Пример результатов после нажатия кнопки "Текст" приведен на рисунке 3.49. Рисунок 3.49- Форма с текстом под углом 45о. Рисования простых фигур Для рисования простых фигур с помощью выбранного пера используется следующий набор перегруженных методов класса Graphics: - DrawLine(...) – рисование линии. Параметрами этого метода, кроме пера, являются координаты двух точек – начала и конца линии. - DrawRectangle(...) – рисование прямоугольника. Параметрами этого метода являются перо, координаты верхнего левого угла, ширина и высота. - DrawEllipse(...) – рисование эллипса. Эллипс создается как геометрическая фигура, вписанная в прямоугольник. То есть самого прямоугольника на рисунке не видно, но параметры эллипса, кроме пера, одновременно являются параметрами такого прямоугольника. - DrawPoligon(...) – рисование многоугольника. Рисует многоугольник, определяемый массивом структур Point. - DrawPie(...) – рисование сектора круга. Рисует сектор, определяемый эллипсом, который задан парой координат, шириной, высотой и двумя радиальными линиями. Эти методы рисуют только контуры фигуры, но не закрашивают их внутреннюю область. Рассмотрим пример вывода на форму эллипса пером заданного стиля и толщины. Рисование фигуры инициируется щелчком мыши по форме. Результат приведен на рисунке 3.50. private: System::Void Form1_MouseClick(System::Object^ sender, System::Windows::Forms::MouseEventArgs^ e) { System::Drawing::Pen^P=gcnew System::Drawing::Pen(Color::Black); Graphics ^gfx = CreateGraphics(); P->DashStyle::set(Drawing::Drawing2D::DashStyle::DashDotDot); P->Width=5; gfx->DrawEllipse(P,70,50,150, 80); }
Приведем еще один пример рисования многоугольника на форме. Результаты приведены на рисунке 3.51. private: System::Void Form1_MouseClick(System::Object^ sender, System::Windows::Forms::MouseEventArgs^ e) { Graphics ^gfx = CreateGraphics(); Point x1= Point(140,50); Point x2= Point(70,100); Point x3= Point(70,200); Point x4=Point(200,200); Point x5=Point(200,100); array <Point>^xx={x1,x2,x3,x4,x5}; gfx->DrawPolygon(Pens::Red,xx); }
Рисунок 3.51 – Построение многоугольника
Рисование и закраска фигур Класс Graphics для закраски областей заданной кистью содержит набор перегруженных методов: - FillRectangle(...) – закраска прямоугольной области; - FillEllipse(...) – закраска эллипса; - FillPoligon(...) – закраска прямоугольника; - FillPie(...) – закраска сектора круга. Для закраски фигур вместо параметра Pen в этих методах используется параметр Brush. Приведем пример рисования прямоугольника с заливкой стандартным геометрическим узором. Результат приведен на рисунке 3.52.
private: System::Void button3_Click(System::Object^ sender, System::EventArgs^ e) { Graphics ^gfx = CreateGraphics(); System::Drawing::Drawing2D::HatchBrush^ Brsh = gcnew System::Drawing::Drawing2D::HatchBrush (System::Drawing::Drawing2D::HatchStyle::Cross, Color::Aqua,Color::Red); gfx->FillRectangle(Brsh,50,50,160,100); } Параметры объекта Brush смотрите выше. Рисунок 3.52 – Закраска фигуры
Рекомендуем самостоятельно попробовать другие стили заполнения, такие как DarkHorizontal, Weave, Percent20, SmallGrid и другие.
|
||||
Последнее изменение этой страницы: 2017-02-08; просмотров: 446; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.118.164.100 (0.01 с.) |