Задание: разработайте приложение «Графический редактор», в котором инструменты не будут похожи на инструменты стандартного графического редактора Paint.
Ход работы
1 Создайте на новой форме элемент управления PictureBox для вывода графического изображения (рис. 40). Первый инструмент, который мы создадим, будет Линии в центр, т.е. при перемещении указателя мыши по PictureBox будут рисоваться линии от указателя к центру PictureBox.
2 Для этого необходимо запрограммировать событие MouseMove (перемещение мыши) для PictureBox следующим образом:
Private Sub picКартинка_MouseMove(Button As Integer, Shift As Integer, _
X As Single, Y As Single)
picКартинка.Line (picКартинка.Width / 2, picКартинка.Height / 2)-(X, Y), vbRed
End Sub
Рис. 40. Конструктор формы
3 Эта процедура рисует линию красного цвета (vbRed) из центра picКартинка к координатам указателя мыши Х и Y, которые передаются в эту процедуру как параметры.
4 Запустите приложение и поводите мышкой по PictureBox. У вас должно получиться изображение, аналогичное рис. 41. Теперь, не закрывая приложения, сверните его на панель задач, а затем сразу распахните. Изображение исчезло. Чтобы исправить эту погрешность, закройте приложение и установите свойство AutoRedraw для picКартинка равным True.
Рис. 41. Линии в центр
5 Но в данном случае мы не управляем процессом вывода линий. Необходимо, чтобы мы могли подавать команды для начала и окончания рисования линий. Самый удобный вариант – это подавать данные команды мышью, к примеру, чтобы линии рисовались при ее нажатой левой клавише.
6 Для этого обработаем значение параметра Button события MouseMove для picКартинка следующим образом:
If Button <> 1 Then Exit Sub
7 Для выполнения дополнительного и контрольных заданий добавим на нашей форме меню Инструменты (рис. 42), в котором будут перечисляться созданные графические инструменты.
8 Самостоятельно создайте код для пункта меню Линии в центр.
Рис. 42. Конструктор меню Инструменты
Дополнительное задание
Добавьте инструмент Квадратики, который будет оставлять шлейф из квадратиков за перемещающимся указателем мыши.
Контрольные задания
Добавьте в наш графический редактор следующие новые функции:
1) инструмент Диагональный отрезок (/);
2) инструмент Диагональный отрезок (\);
3) инструмент Перекрестье (+);
4) инструмент Перекрестье (×);
5) инструменты Окружности и Кружочки;
6) инструмент Распылитель;
7) пункт меню Цвет для выбора цвета;
8) пункт меню Толщина для изменения толщины рисования;
9) пункт Файл (Новый, Открыть, Выход);
10) пункт Файл (Сохранить, Выход).
Вопросы для самоконтроля
1 Когда генерируется событие MouseMove?
2 Когда генерируются события MouseDown и MouseUp?
3 С помощью какого оператора можно сохранить созданную картинку из PictureBox в файле на диске?
4 Какой тип графического файла получается в результате такого сохранения?
5 Какое свойство элементов управления включает перерисовку его содержимого при повторном выводе на экран?
Скачано с www.znanio.ru
Материалы на данной страницы взяты из открытых источников либо размещены пользователем в соответствии с договором-офертой сайта. Вы можете сообщить о нарушении.