дескриптор DPI_AWARENESS_CONTEXT

Определяет контекст осведомленности для окна.

Синтаксис

#define DPI_AWARENESS_CONTEXT_UNAWARE              ((DPI_AWARENESS_CONTEXT)-1)
#define DPI_AWARENESS_CONTEXT_SYSTEM_AWARE         ((DPI_AWARENESS_CONTEXT)-2)
#define DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE    ((DPI_AWARENESS_CONTEXT)-3)
#define DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE_V2 ((DPI_AWARENESS_CONTEXT)-4)
#define DPI_AWARENESS_CONTEXT_UNAWARE_GDISCALED    ((DPI_AWARENESS_CONTEXT)-5)

Константы

DPI_AWARENESS_CONTEXT_UNAWARE

DPI не подозревает. Это окно не масштабируется при изменении DPI и всегда предполагается, что коэффициент масштабирования составляет 100 % (96 точек на дюйм). Он будет автоматически масштабироваться системой при любом другом параметре DPI.

DPI_AWARENESS_CONTEXT_SYSTEM_AWARE

С учетом системного DPI. Это окно не масштабируется для изменения DPI. Он будет запрашивать DPI один раз и использовать это значение в течение времени существования процесса. При изменении DPI процесс не будет настраиваться на новое значение DPI. Он будет автоматически масштабироваться системой при изменении DPI от системного значения.

DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE

Для каждого монитора учитывается DPI. Это окно проверяет наличие DPI при его создании и корректирует коэффициент масштабирования при каждом изменении DPI. Эти процессы не масштабируются системой автоматически.

DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE_V2

Также называется per Monitor версии 2. Усовершенствование по сравнению с исходным режимом осведомленности о DPI для каждого монитора, который позволяет приложениям получать доступ к новым режимам масштабирования, связанным с DPI, для каждого окна верхнего уровня.
Per Monitor версии 2 был доступен в обновлении Creators Update Windows 10 и недоступен в более ранних версиях операционной системы.
Ниже приведены дополнительные варианты поведения.

  • Уведомления об изменении DPI дочернего окна . В контекстах "На монитор" версии 2 все дерево окна получает уведомление о любых изменениях DPI.
  • Масштабирование неклиентской области — все окна будут автоматически иметь неклиентская область, нарисованная с учетом DPI. Вызовы EnableNonClientDpiScaling не нужны.
  • Масштабирование меню Win32 . Все меню NTUSER, созданные в контекстах "На монитор" версии 2, будут масштабироваться для каждого монитора.
  • Масштабирование диалогов . Диалоговые окна Win32, созданные в контекстах "На монитор" версии 2, будут автоматически реагировать на изменения DPI.
  • Улучшенное масштабирование элементов управления comctl32 . Различные элементы управления comctl32 улучшили поведение масштабирования DPI в контекстах "На монитор" версии 2.
  • Улучшенное поведение тем . Дескрипторы UxTheme, открытые в контексте окна "На монитор" версии 2, будут работать с точки зрения DPI, связанного с этим окном.

DPI_AWARENESS_CONTEXT_UNAWARE_GDISCALED

DPI не учитывается с улучшенным качеством содержимого на основе GDI. Этот режим работает аналогично DPI_AWARENESS_CONTEXT_UNAWARE, но также позволяет системе автоматически улучшать качество отрисовки текста и других примитивов на основе GDI при отображении окна на мониторе с высоким разрешением.

Дополнительные сведения см. в статье Улучшение работы с высоким разрешением на дюйм в классических приложениях на основе GDI.

DPI_AWARENESS_CONTEXT_UNAWARE_GDISCALED появилась в обновлении Windows 10 за октябрь 2018 г. (версия 1809).

Требования

Требование Значение
Минимальная версия клиента
Windows 10 версии 1607 [только классические приложения]
Минимальная версия сервера
Ни одна версия не поддерживается
Заголовок
windef.h

См. также раздел

AreDpiAwarenessContextsEqual

GetAwarenessFromDpiAwarenessContext

GetDpiFromDpiAwarenessContext

GetThreadDpiAwarenessContext

GetWindowDpiAwarenessContext

IsValidDpiAwarenessContext

SetProcessDpiAwarenessContext

SetThreadDpiAwarenessContext