Поделиться через


Контексты устройства отображения окна

Контекст устройства окна позволяет приложению рисовать в любом месте окна, включая неклиентную область. Контексты оконных устройств обычно используются приложениями, обрабатывающими WM_NCPAINT и WM_NCACTIVATE сообщения для windows с настраиваемыми неклиентными областями. Использование контекста оконного устройства не рекомендуется для каких-либо других целей.

Приложение может получить контекст оконного устройства с помощью функции GetWindowDC или GetDCEx с указанным параметром DCX_WINDOW. Функция извлекает контекст устройства окна из кэша контекста устройства отображения. Окно, использующее контекст оконного устройства, должно освободить его после рисования с помощью функции ReleaseDC как можно скорее. Контексты оконных устройств всегда находятся из кэша; Стили классов CS_OWNDC и CS_CLASSDC не влияют на контекст устройства.

Когда приложение получает контекст устройства окна, система задает для источника устройства верхний левый угол окна, а не верхний левый угол клиентской области. Он также задает область отсечения, чтобы включить все окно, а не только клиентную область. Система устанавливает текущие значения атрибутов контекста оконного устройства теми же значениями по умолчанию, что и общий контекст устройства. Приложение может изменять значения атрибутов, но система не сохраняет никаких изменений при освобождении контекста устройства.