Функция GetDCEx (winuser.h)
Функция GetDCEx извлекает дескриптор в контекст устройства (DC) для клиентской области указанного окна или для всего экрана. Возвращаемый дескриптор можно использовать в последующих функциях GDI для рисования в контроллере домена. Контекст устройства — это непрозрачная структура данных, значения которой используются внутри GDI.
Эта функция является расширением функции GetDC , которая дает приложению более полный контроль над тем, как и происходит ли обрезка в клиентской области.
Синтаксис
HDC GetDCEx(
[in] HWND hWnd,
[in] HRGN hrgnClip,
[in] DWORD flags
);
Параметры
[in] hWnd
Дескриптор для окна, контроллер домена которого требуется извлечь. Если это значение равно NULL, GetDCEx извлекает контроллер домена для всего экрана.
[in] hrgnClip
Отсеченная область, которая может быть объединена с видимой областью контроллера домена. Если значение флагов равно DCX_INTERSECTRGN или DCX_EXCLUDERGN, операционная система принимает на себя владение регионом и автоматически удаляет его, когда он больше не нужен. В этом случае приложение не должно использовать или удалять регион после успешного вызова GetDCEx.
[in] flags
Указывает способ создания контроллера домена. Этот параметр может иметь одно или несколько из следующих значений.
Значение | Значение |
---|---|
|
Возвращает контроллер домена, соответствующий прямоугольнику окна, а не клиентскому прямоугольнику. |
|
Возвращает контроллер домена из кэша, а не из окна OWNDC или CLASSDC. По сути, переопределяет CS_OWNDC и CS_CLASSDC. |
|
Использует видимую область родительского окна. Биты WS_CLIPCHILDREN родительского элемента и CS_PARENTDC стиля игнорируются. В качестве источника задается левый верхний угол окна, определяемый hWnd. |
|
Исключает видимые области всех одноуровневых окон над окном, определяемым hWnd. |
|
Исключает видимые области всех дочерних окон под окном, определенным hWnd. |
|
Этот флаг отклонен. |
|
Позволяет выполнять рисование, даже если действует вызов LockWindowUpdate , который в противном случае исключил бы это окно. Используется для рисования во время отслеживания. |
|
Область обрезки, определяемая hrgnClip , исключается из видимой области возвращаемого контроллера домена. |
|
Область обрезки, определяемая hrgnClip , пересекается с видимой областью возвращаемого контроллера домена. |
|
Защищены; не использовать. |
|
Защищены; не использовать. |
Возвращаемое значение
Если функция выполняется успешно, возвращаемое значение является дескриптором контроллера домена для указанного окна.
Если функция завершается сбоем, возвращается значение NULL. Недопустимое значение параметра hWnd приведет к сбою функции.
Комментарии
Если контроллер домена дисплея не принадлежит классу окна, необходимо вызвать функцию ReleaseDC , чтобы освободить контроллер домена после рисования. Кроме того, ReleaseDC должен вызываться из того же потока, что и GetDCEx. Количество контроллеров домена ограничено только доступной памятью.
Функция возвращает дескриптор контроллеру домена, который принадлежит классу окна, если CS_CLASSDC, CS_OWNDC или CS_PARENTDC был указан в качестве стиля в структуре WNDCLASS при регистрации класса.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 2000 Professional [только классические приложения] |
Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
Целевая платформа | Windows |
Header | winuser.h (включая Windows.h) |
Библиотека | User32.lib |
DLL | User32.dll |