Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
gdi.doc
Скачиваний:
13
Добавлен:
15.09.2019
Размер:
306.18 Кб
Скачать

3. Резюме

Чтобы обеспечить доступ к устройствам графического вывода одновременно

нескольким программам, в Windows применяется специальный системный механизм

– контекст устройства. Все операции рисования приложения выполняют с помощью

контекста устройства. Это служебная структура, в которой хранятся все характери-

стики конкретного устройства, необходимые модулю GDI для рисования пикселей и

69

графических примитивов. Контекст устройства в MFC представлен классом CDC, от

которого унаследованы подклассы для разновидностей контекстов устройств Win-

dows, например, CPaintDC, CClientDC, CWindowDC.

Приложение при вызове функций рисования указывает координаты примити-

вов в логической системе координат. Соответствие между логической системой коор-

динат контекста устройства и физической системой координат, связанной с поверхно-

стью изображения, задается режимом преобразования координат.

В физической системе координат устройства расстояния измеряются в пиксе-

лах. Точка (0, 0) всегда располагается в левом верхнем углу поверхности отображе-

ния, ось x направлена вправо, а y – вниз. У логической системы координат эти пара-

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

верхности изображения, можно изменить ориентацию осей и масштаб (этим управля-

ет режим преобразования координат).

Функции рисования GDI условно делятся на несколько групп: рисование от-

резков и кривых, рисование замкнутых фигур, отображение текста и др. Полный спи-

сок функций рисования есть в разделе справочной системе Visual C++ по классу CDC,

в котором эти функции оформлены в виде функций-членов.

При рисовании графических примитивов свойства отображения, например,

цвет и стиль линии, задаются параметрами контекста устройства, среди которых наи-

более важные – текущие выбранные объекты GDI (перо для рисования линий, кисть

для заполнения областей, шрифт для вывода текста). Все классы-объекты GDI в MFC

унаследованы от базового класса CGdiObject: CPen для перьев, CBrush для кистей,

CFont для шрифтов. В каждом классе хранится дескриптор объекта GDI (в перемен-

ной-члене m_hObject).

Созданные программистом объекты GDI необходимо удалять. Перед удалени-

ем надо выбрать в контексте другой объект, т.к. текущий выбранный объект GDI уда-

лить нельзя.

4. Упражнения

1) Попробуйте выполнить примеры рисования, приведенные в лекции, подставляя

фрагменты исходного текста в обработчик OnPaint приложения Hello (оно было

рассмотрено в предыдущей лекции).

2) Изучите англо-русский словарь терминов по теме 5-й лекции (см. CD-ROM).

3) Выполните лабораторную работу №2, "Работа с модулем GDI" (см. CD-ROM).

70

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]