Функция GetDCEx


Функция 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, ReleaseDCWNDCLASS

Размещение и совместимость 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

Нет

Замечания по платформе

Не имеется

 

Назад в оглавление
На главную страницу
На оглавление справки
04.09.2003 20:36 ©Copyright V. Sokovikov
Hosted by uCoz