Функция GetDCEx
В программном интерфейсе операционной системы Windows версии 3.1 появилась функция GetDCEx , предоставляющая расширенные возможности для получения контекста отображения:
HDC WINAPI GetDCEx(register HWND hwnd, HRGN hrgnClip, DWORD flags);
Функция возвращает идентификатор полученного контекста отображения или NULL при ошибке.
Параметр hwnd задает идентификатор окна, для которого необходимо получить контекст отображения.
С помощью параметра hrgnClip можно определить область ограничения вывода. Эта область может иметь произвольную форму и являться комбинацией нескольких областей ограничения. Использование областей ограничения будет подробно описано дальше в этой главе.
Параметр flags определяет способ, которым будет образован контекст отображения. Этот параметр можно указывать как логическую комбинацию следующих значений:
Константа | Описание |
DCX_WINDOW | Функция возвращает контекст отображения, позволяющий рисовать во всем окне, а не только в его внутренней области |
DCX_CACHE | Функция получает общий контекст отображения из кеша Windows, даже если окно создано на базе класса стиля CS_OWNDC или CS_CLASSDC |
DCX_CLIPCHILDREN | Видимые области всех дочерних окон, расположенных ниже окна hwnd, исключаются из области отображения |
DCX_CLIPSIBLINGS | Видимые области всех окон-братьев (окон, имеющих общих родителей), расположенных выше окна hwnd, исключаются из области отображения |
DCX_PARENTCLIP | Для отображения используется вся видимая область родительского окна, даже если родительское окно создано с использованием стилей WS_CLIPCHILDREN и WS_PARENTDC. Начало координат устанавливается в левый верхний угол окна hwnd |
DCX_EXCLUDERGN | Если указан этот флаг, при выводе будет использована область ограничения, заданная параметром hrgnClip |
DCX_INTERSECTRGN | Используется пересечение области ограничения, заданной параметром hrgnClip, и видимой области полученного контекста отображения |
DCX_LOCKWINDOWUPDATE | Этот флаг разрешает рисование в окне, заблокированном для рисования функцией LockWindowUpdate . Флаг можно использовать при необходимости рисовать, например, рамку, выделяющую произвольную область экрана |
Контекст отображения, полученный функцией GetDCEx, следует освободить после использования при помощи функции ReleaseDC.