Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
LEKCII.doc
Скачиваний:
9
Добавлен:
17.09.2019
Размер:
1.12 Mб
Скачать

Область ограничения.

По умолчанию в контексте отображения задана область ограничения вывода (clipping region), совпадающая со всей областью вывода. Например, если приложение получило контекст отображения для окна, область ограничения совпадает с внутренней областью (client region) этого окна.

Приложение может создавать область ограничения вывода сложной, практически произвольной формы, исключая или включая в нее области в виде многоугольников или эллипсов. Это позволяет получить при отображении интересные эффекты, труднодостижимые без использования областей ограничения (правда, ценой снижения скорости вывода изображения).

Для работы с областями предназначены следующие функции: CreateEllipticRgn, CreateEllipticRgnIndirect, CreatePolygonRgn, CreatePolyPolygonRgn, CreateRectRgn, CreateRoundRectRgn , ExcludeClipRgn , IntersectClipRgn , OffsetClipRgn , SelectclipRgn .

Режим отображения.

Режим отображения, установленный в контексте отображения, влияет на систему координат. Устанавливая различные режимы отображения, приложение может изменять направление и масштаб координатных осей.

По умолчанию в контексте отображения установлен режим отображения MM_TEXT . Для этого режима начало системы координат находится в верхнем левом углу внутренней области окна. Ось x направлена вправо, ось y - вниз. В качестве единицы измерения используется пиксель.

Такой режим отображения удобен для вывода текста. Иногда удобнее использовать обычную систему координат, в которой ось x направлена слева направо, а ось y - снизу вверх. Вы можете выбрать один из нескольких режимов отображения с таким направлением осей. В качестве единицы измерения можно использовать сотые и тысячные доли дюйма, сотые и десятые доли миллиметра и другие величины.

С помощью функции SetMapMode приложение может установить в контексте режим отображения, удобный для решения той или иной задачи.

В операционной системе Windows NT можно выбрать и другие системы координат, например, с наклонным расположением осей.

Начало системы координат для окна.

В контексте отображения хранится информация о расположении начала системы координат для окна и для физического устройства отображения. Эта информация используется GDI при выполнении преобразования логических координат в физические, которое выполняется различными способами в зависимости от установленного режима отображения. По умолчанию начало системы координат для окна (window origin) установлено в точку (0,0). Для перемещения начала системы координат окна можно использовать функцию SetWindowOrg .

Начало системы физических координат.

Начало системы физических координат (viewport origin) относится не к окну приложения, а к физическому устройству вывода (например, ко всему экрану монитора) и используется при выполнении преобразования логических координат в физические.

По умолчанию начало системы физических координат установлено в точку (0,0). Для перемещения начала системы координат окна можно использовать функцию SetViewportOrg .

Масштаб осей для окна.

Для некоторых режимов отображения приложение может изменять масштаб осей в окне (window extent ), устанавливая для него новое значение в контексте отображения.

По умолчанию используется значение (1,1), т. е. используется масштаб 1:1. Приложение может изменить масштаб осей для окна, вызвав функцию SetWindowExt .

Масштаб осей физических координат.

Контекст отображения содержит масштаб осей для физического устройства (viewport extent ), который вместе с масштабом осей в окне используется в процессе преобразования координат.

По умолчанию для масштаба осей физических координат используется значение (1,1), т. е. масштаб 1:1. Приложение может изменить масштаб осей физических координат, вызвав функцию SetViewportExt .

Инструменты для рисования.

Для рисования в распоряжении приложений Windows есть перья, кисти, текстовые шрифты и битовые изображения. Разумеется, все эти инструменты могут быть черно-белые или цветные, причем цветовое разрешение определяется в основном только возможностями видеоконтроллера.

Перья.

Перья используются для рисования линий и простейших геометрических фигур. Приложение может выбрать одно из трех предопределенных перьев, либо создать собственное, выбрав нужный цвет и стиль. На рис. изображены линии, нарисованные с использованием перьев различной ширины и стиля.

Рис. Линии разной ширины, нарисованные с использованием различных стилей

На рис. показаны геометрические фигуры, нарисованные с использованием различных перьев, сплошных и пунктирных.

Рис. Геометрические фигуры, нарисованные с использованием различных перьев

Кисти.

Внутренняя область окна и замкнутых геометрических фигур может быть закрашена при помощи кисти. С помощью функции GetStockObject можно выбрать черную, белую, темно- или светло - серую кисть или нулевую кисть (null brush). Можно выбрать одну из кистей, предназначенных для штриховки, для чего следует использовать функцию CreateHatchBrush. Все эти кисти встроены в операционную систему.

Рис. Геометрические фигуры, закрашенные с использованием встроенных кистей

Если вас не устраивает ни одна из встроенных кистей, вы можете создать собственную, определив ее как изображение bitmap размером 8х8 пикселей. Такая кисть может иметь любой внешний вид и любой цвет.

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