Интерфейс графических устройств, страница 2

Приватные контексты устройствОбычно приложения обращаются к общедоступным контекстам устройств и вводят в них дополнительные объекты непосредственно перед использованием, а затем освобождают, как только они становятся ненужными. Такой метод в наибольшей степени подходит для приложений, в которых контекст устройства применяется для вывода не очень часто.В приложении, для которого постоянно требуется контекст устройства, можно создать окно с приватным контекстом устройства, указав стиль класса CS_OWNDC в определении класса для этого окна. При таком стиле класса контекст устройства существует на протяжении всего срока существования окна. Приложение использует функцию GetDC для выборки дескриптора контекста устройства, но не вызывает функцию ReleaseDC после использования контекста устройства. Применение приватного контекста устройства с программами, которые изменяют контекст устройства,означает, что такие изменения, как новые цвета текста, дополнительные перья и кисти, продолжают действовать до тех пор, пока приложение их не изменит.Установки начала координат и экстентыКонтекст устройства имеет два специальных режима отображения, MM_ISOTROPIC и MM_ANISOTROPIC, которые не ограничены постоянными размерами. В этих режимах отображения применяются две прямоугольные области для получения коэффициента масштабирования и ориентации: окно и область просмотра. Окно определяется в логических координатах, а область просмотра — в физических координатах. От этих значений зависит, как логические единицы длины будут отображаться в физические. И окно, и область просмотра содержат начало координат, экстент х и экстент у. Начало координат — это точка, по которой можно определить местонахождение любого из четырех углов. Начало координат области просмотра может быть сдвинуто по отношению к началу координат окна. Экстент х — расстояние по горизонтали от начала координат до противоположного угла области просмотра. Экстент у — расстояние по вертикали от начала координат до противоположного угла области просмотра. Пример определения установок начала координат приведен в описании функции GetViewportOrgEx.Система Windows определяет коэффициент масштабирования по горизонтали путем деления экстента д: области просмотра на экстент х окна, а коэффициент масштабирования по вертикали — путем деления экстента у области просмотра на экстент у окна. Эти коэффициенты масштабирования определяют число логических единиц длины, отображаемых системой Windows в число пикселей. Кроме определения коэффициентов масштабирования, окно и область просмотра определяет ориентацию объекта. Применение масштабирования для окна и области просмотра демонстрирует пример, приведенный в описании функции SetMapMode.

Описания функций GDIВ табл. 11.1 приведены функции интерфейса графических устройств. За таблицей следует подробное описание функций.