
- •Режимы рисования, устанавливаемые вызовом функции cdc::SetRop2()
- •Задание 1. Создание объектов контекста устройства, инструментов рисования и демонстрация режимов отображения
- •Создание графических изображений закраской пикселов
- •Задание 2. Цветовая закраска пикселов при создании узоров
- •Подведение итогов
- •Глава 11. Использование функций рисования
- •Функции рисования графических примитивов
- •Рисование прямых и кривых линий
- •Рисование фигур с замкнутым контуром
- •Дополнительные функции рисования класса cdc
- •Задание 1. Демонстрация графических примитивов
Дополнительные функции рисования класса cdc
Функция |
Назначение |
DrawFocusRect() |
Рисует границу прямоугольника, используя пунктирную линию, без заливки внутренней области. Граница рисуется цветом, инверсным цвету экрана. повторный вызов функции с этими же координатами удаляет границу |
DrawIcon() |
Рисует значок |
BitBlt |
Копирует растровое изображение из определенного объекта контекста устройства |
ExtFloodFill() |
Заполняет область, ограниченную данным цветом, используя текущую кисть. можно закрасить область, заполненную указанным цветом |
FillRect() |
Заполняет прямоугольную область, используя указанную кисть без рисования границ |
FloodFill() |
Заполняет область, ограниченную данным цветом, используя текущую кисть |
FrameRect() |
Рисует прямоугольную границу, используя указанную кисть, без заполнения внутренней области |
InvertRect() |
Инвертирует цвет внутри прямоугольной области |
PolyDraw() |
Рисует фигуры, состоящие из комбинаций прямых и кривых линий, т.е. из сегментов прямых линий и сплайнов Безье |
Теперь можно использовать функции рисования геометрических фигур, линий и точек для создания графических изображений.
Задание 1. Демонстрация графических примитивов
В этом упражнении вы дополните программу MyPaint кодом для отображения различных графических фигур в окне представления. Программа предназначена только для демонстрации графических примитивов. Она не предусматривает рисование фигур мышью, поэтому не может быть использована в качестве графического редактора. Для добавления в программу новых функциональных возможностей выполните следующие действия:
Откройте проект последней версии программы MyiPaint, выполнив команду FileOpenProject…
Откройте окно редактора меню для внесения в него изменений. Для этого дважды щелкните мышью на идентификаторе меню IDR_MAINFRAME в узле Menu в окне Resource View.
В меню Graphics добавьте новую команду с надписью &Presentation (Демонстрация графики). Вы получите такое меню, как показано на рис. 11.8. Идентификатор команды меню ID_GRAPHICS_PRESENTATION мы предлагаем оставить без изменения.
Рис. 11.8. Меню программы MyiPaint после добавления команды Presentation
Добавьте обработчик командного сообщения, генерируемого выбором команды меню GraphicsPresentation. Выполните команду Add Event Handler….. В поле Message type выберите тип сообщения COMMAND, в поле Class list выберите класс CMainFrame для добавления в него создаваемого обработчика сообщений. В поле Function handler name уже указано имя функции OnGraphicsPresentation. В качестве класса для демонстрации графических примитивов выбран класс CMainFrame главного окна-рамки. Объявление функции OnGraphicsPresentation(), ее реализация и макрос