Функция SetGraphicsMode устанавливает графический режим для указанного контекста устройства.
Синтаксис
int SetGraphicsMode( HDC hdc, // дескриптор контекста устройства int iMode // графический режим ); |
hdc
[in] Дескриптор контекста устройства.
iMode
[in] Определяет графический режим. Этот параметр может быть одним из нижеследующих значений.
| Значение | Предназначение |
|---|---|
| GM_COMPATIBLE | Устанавливает графический режим, который является совместимым с 16-разрядными Windows. Это - режим по умолчанию. Если это значение определено, приложение может модифицировать только преобразование мирового пространства в пространство устройства при помощи вызова функций, которые устанавливают размеры и начало координат окна и области просмотра, но не при помощи использования SetWorldTransform или ModifyWorldTransform; вызовы этих функций завершатся ошибкой. Примеры функций, которые устанавливают размеры и начало координат окна и области просмотра - SetViewportExtEx и SetWindowExtEx. |
| GM_ADVANCED | Windows NT/2000/XP: Устанавливает улучшенный
графический режим, который дает возможность преобразования мирового
пространства. Это значение должно быть определено тогда, если приложение
устанавливает или модифицирует преобразование мирового пространства для
указанного контекста устройства. В этом режиме вся графика, включая
текстовые выводимые данные, полностью соответствует преобразованию
мирового пространства в пространство устройства, определенному в
контексте устройства.
Windows 95/98/Me: Значение GM_ADVANCED не поддерживается. Когда проигрывается улучшенный метафайл, система пытается сделать, чтобы улучшенные метафайлы выглядели одинаково, как это делается в Windows NT/2000/XP. Чтобы достичь этого, система может моделировать режим GM_ADVANCED, проигрывая записи указанного метафайла. |
Если функция завершается успешно, возвращаемое значение - старый графический режим.
Если функция завершается ошибкой, возвращаемое значение - нуль. Чтобы получить дополнительную информацию об ошибке, вызовите GetLastError.
Имеется три области, в которых вывод графических данных различается согласно графическому режиму:
В режиме GM_ADVANCED, вывод текста шрифтом TrueType (или векторным шрифтом) полностью соответствует преобразованию мирового пространства в пространство устройства в контексте устройства. Растровые шрифты имеют лишь очень ограниченные возможности преобразования (растяжение при помощи некоторых целочисленных коэффициентов). Интерфейс графического устройства (GDI) делает попытку создать лучший вывод , какой он может сделать с растровыми шрифтами для нетривиальных преобразований.
Графический режим GM_ADVANCED требуется, если приложения хотят рисовать прямоугольники, которые имеют и правые и нижние стороны включительно.
Если установлен графический режим GM_ADVANCED, интерфейс графического устройства (GDI) в логическом пространстве всегда рисует дуги в направлении против часовой стрелки. Это равносильно предписанию, что в графическом режиме GM_ADVANCED и контрольные точки дуги, и дуги непосредственно, полностью соблюдает правила преобразования мирового пространства в пространство устройства контекста устройства.
Пример смотри в статье Использование координатных пространств и преобразований.
Обзор Координатные пространства и преобразования, Функции, используемые координатными пространствами и преобразованиями, CreateDC, GetArcDirection, GetDC, GetGraphicsMode, ModifyWorldTransform, SetArcDirection, SetViewportExtEx, SetWindowExtEx, SetWorldTransform
|
Размещение и совместимость SetGraphicsMode |
||
| К | Windows XP | Да |
| л | Windows 2000 Professional | Да |
| и | Windows NT Workstation | Да версии 3.1 и старше |
| е | Windows Me | Да |
| н | Windows 98 | Да |
| т | Windows 95 | Да |
| С | Windows Server 2003 | Да |
| е | Windows 2000 Server | Да |
| р | Windows NT Server | Да |
| в | ||
| е | ||
| р | ||
| Используемая библиотека | Gdi32.lib | |
| Используемая DLL | - | |
| Заголовочный файл | ||
| - объявлено в | Wingdi.h | |
| - включено в | Windows.h | |
| Unicode | Нет | |
| Замечания по платформе | Не имеется | |