Функция 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 | Нет | |
Замечания по платформе | Не имеется |