Функция SetGraphicsMode (wingdi.h)
Функция SetGraphicsMode задает графический режим для указанного контекста устройства.
Синтаксис
int SetGraphicsMode(
[in] HDC hdc,
[in] int iMode
);
Параметры
[in] hdc
Дескриптор контекста устройства.
[in] iMode
Графический режим. Этот параметр может принимать одно из указанных ниже значений.
Значение | Значение |
---|---|
|
Задает графический режим, совместимый с 16-разрядной версией Windows. Это режим по умолчанию. Если это значение указано, приложение может изменять преобразование мира на устройство только путем вызова функций, которые задают экстенты и источники окна и окна просмотра, но не с помощью SetWorldTransform или ModifyWorldTransform; Вызовы этих функций завершатся ошибкой. Примерами функций, которые задают экстенты и источники окна и окна просмотра, являются SetViewportExtEx иSetWindowExtEx. |
|
Задает расширенный графический режим, разрешающий преобразования мира. Это значение необходимо указать, если приложение будет задавать или изменять преобразование мира для указанного контекста устройства. В этом режиме все рисунки, включая текстовые выходные данные, полностью соответствуют преобразованию "мир в устройство", указанному в контексте устройства. |
Возвращаемое значение
Если функция выполнена успешно, возвращается старое графическое значение.
Если функция выполняется неудачно, возвращается нулевое значение.
Комментарии
Существует три области, в которых графический вывод отличается в зависимости от графического режима:
-
Вывод текста. В режиме GM_COMPATIBLE вывод текста TrueType (или векторного шрифта) ведет себя так же, как и вывод текста растрового шрифта по отношению к преобразованиям мира на устройство в контроллере домена. Текст TrueType всегда записывается слева направо и справа вверх, даже если остальная часть графики будет перевернута на оси x или y. Масштабируется только высота текста TrueType (или векторного шрифта). Единственный способ написать текст, который не является горизонтальным в режиме GM_COMPATIBLE, — указать ненулевой escapement и ориентацию для логического шрифта, выбранного в этом контексте устройства.
В режиме GM_ADVANCED вывод текста TrueType (или векторного шрифта) полностью соответствует преобразованию "мир на устройство" в контексте устройства. Растровые шрифты имеют только ограниченные возможности преобразования (растягивание по некоторым целочисленным факторам). Интерфейс графического устройства (GDI) пытается получить наилучшие выходные данные с помощью растровых шрифтов для нетривиальных преобразований.
-
Исключение прямоугольника. Если задан режим GM_COMPATIBLE графики по умолчанию, система исключает нижние и крайние правые края при рисовании прямоугольников.
Графический режим GM_ADVANCED требуется, если приложения хотят рисовать прямоугольники в нижнем правом углу.
-
Рисование дугой. Если задан режим графики по умолчанию GM_COMPATIBLE, GDI рисует дуги с использованием текущего направления дуги в пространстве устройства. В соответствии с этим соглашением дуги не учитывают преобразования страницы на устройство, которые требуют переворачивания вдоль оси X или Y.
Если задан режим GM_ADVANCED графики, GDI всегда рисует дуги в направлении против часовой стрелки в логическом пространстве. Это эквивалентно утверждению о том, что в графическом режиме GM_ADVANCED как сами точки управления дугой, так и дуги полностью соответствуют преобразованию мира в устройство контекста устройства.
Примеры
Пример см. в разделе Использование координатных пространств и преобразований.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 2000 Professional [только классические приложения] |
Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
Целевая платформа | Windows |
Header | wingdi.h (включая Windows.h) |
Библиотека | Gdi32.lib |
DLL | Gdi32.dll |
См. также раздел
Функции координатного пространства и преобразования
Общие сведения о координатных пространствах и преобразованиях
SetViewportExtEx
SetWindowExtEx