Функция GetDCEx извлекает дескриптор дисплейного контекста устройства (DC) для рабочей области заданного окна или для всего экрана. Вы можете использовать возвращенный дескриптор в последующих функциях графического интерфейса устройств, чтобы рисовать в контексте устройства.
Эта функция - развитие функции GetDC, которая дает приложению больше контроля над тем, как и происходит ли отсечение по границам в рабочей области.
Синтаксис
HDC GetDCEx( HWND hWnd, // дескриптор окна HRGN hrgnClip, // дескриптор региона отсечения DWORD flags // параметры создания ); |
hWnd
[in] Дескриптор окна, контекст устройства (DC) которого должен извлечься. Если это значение - ПУСТО (NULL), GetDCEx извлекает контекст устройства для всего экрана.Windows 98/Me, Windows 2000/XP: Чтобы получить контекст устройства (DC) для конкретного экранного монитора, используйте функцию EnumDisplayMonitors и CreateDC.
hrgnClip
[in] Устанавливает регион отсечения, который может быть объединен с видимым регионом контекста устройства (DC). Если значение параметра flags - DCX_INTERSECTRGN или DCX_EXCLUDERGN, тогда операционная система предполагает монопольное использование региона и автоматически удалит его, когда он больше не нужен. В этом случае, приложения не должны использовать регион - даже тогда, когда он не удаляется после успешного вызова функции GetDCEx.flags
[in] Устанавливает, как контекст устройства (DC) создается. Этот параметр может быть одно или несколько ниже следующих значений.
Значение | Предназначение |
---|---|
DCX_WINDOW | Возвращает контекст устройства (DC), который соответствует прямоугольнику окна, а не рабочему прямоугольнику. |
DCX_CACHE | Возвращает контекст устройства (DC) из КЭШа, а не OWNDC или CLASSDC окна. По существу отменяет флажки CS_OWNDC и CS_CLASSDC. |
DCX_PARENTCLIP | Использует видимый регион родительского окна. Биты стиля WS_CLIPCHILDREN И CS_PARENTDC родителя игнорируются. Начало координат устанавливается в левом верхнем углу окна, идентифицированного параметром hWnd. |
DCX_CLIPSIBLINGS | Исключает видимые регионы всех сестринских окон, которые выше окна, идентифицированного hWnd. |
DCX_CLIPCHILDREN | Исключает видимые регионы всех дочерних окон, которые ниже окна, идентифицированного hWnd. |
DCX_NORESETATTRS | Не сбрасывает атрибуты этого контекста устройства (DC) в атрибуты по умолчанию, когда этот контекст устройства освобождается. |
DCX_LOCKWINDOWUPDATE | Даёт возможность рисовать, даже если был в действительности вызов функции LockWindowUpdate, который в противном случае исключил бы это окно. Используется для того, чтобы рисовать в ходе отслеживания. |
DCX_EXCLUDERGN | Регион отсечения, идентифицированный параметром hrgnClip исключается из области видимости возвращенного контекста устройства (DC). |
DCX_INTERSECTRGN | Регион отсечения, идентифицированный параметром hrgnClip пересекается с областью видимости возвращенного контекста устройства (DC). |
DCX_VALIDATE | Когда установлен с флажком DCX_INTERSECTUPDATE, вызывает контекст устройства (DC), который будет полностью правильный. Использование этой функции и флажков DCX_INTERSECTUPDATE и DCX_VALIDATE идентично использованию функции BeginPaint. |
Если функция завершается успешно, возвращаемое значение - дескриптор контекста устройства (DC) для заданного окна.
Если функция завершается ошибкой, возвращаемое значение - ПУСТО (NULL). Недопустимое значение для параметра hWnd заставит функцию завершиться ошибкой.
Windows NT/2000/XP: Чтобы получать дополнительные сведения об ошибке, вызовите GetLastError.
Если дисплейный DC не принадлежит классу окна, чтобы освободить контекст устройства после рисования, должна вызываться функция ReleaseDC . К тому же, ReleaseDC должна вызваться из того же самого потока, который вызвал функцию GetDCEx. Число контекстов устройства (DC) ограничено только доступной памятью.
Windows 95/98/Me: Имеется только пять общих контекстов устройства (DC), доступных в любое время, в соответствии с этим отказ освобождать контекст устройства может препятствовать другим приложениям обращаться к нему.
Функция возвращает дескриптор контекста устройства (DC), который принадлежит классу окна, если флажки CS_CLASSDC, CS_OWNDC или CS_PARENTDC определялись как стиль в структуре WNDCLASS, когда регистрировался класс.
Смотри такжеОбзор Контексты устройства, Функции, используемые контекстами устройства, BeginPaint, GetWindowDC, ReleaseDC, WNDCLASS
Размещение и совместимость GetDCEx |
|
Windows. NET Server |
Да |
Windows XP |
Да |
Windows 2000 |
Да |
Windows NT |
Да версии 3.1 и выше |
Windows Me |
Да |
Windows 98 |
Да |
Windows 95 |
Да |
Используемая библиотека |
User32.lib |
Заголовочный файл |
|
- объявлено в |
Winuser.h |
- включено в |
Windows.h |
Unicode |
Нет |
Замечания по платформе |
Не имеется |