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


дескриптор 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.

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 (также известной как версия 1703) и недоступен в более ранних версиях операционной системы.
Ниже приведены дополнительные характеристики.

  • Уведомления об изменениях в дочернем окне DPI— в контекстах per Monitor версии 2 дерево окон уведомляется обо всех изменениях DPI.
  • Масштабирование области, отличной от клиента. Все окна автоматически будут иметь свою не клиентская область , нарисованную в конфиденциальном режиме DPI. Вызовы enableNonClientDpiScaling являются ненужными.
  • Масштабирование меню Win32 — все меню NTUSER, созданные в контекстах Per Monitor версии 2, будут масштабироваться в режиме на монитор.
  • Масштабирование диалогов — диалоговые окна Win32, созданные в контекстах Per Monitor версии 2, автоматически отвечают на изменения DPI.
  • Улучшено масштабирование элементов управления comctl32 — различные элементы управления comctl32 улучшили поведение масштабирования DPI в контекстах Per Monitor версии 2.
  • Улучшено поведение тем — дескриптор UxTheme, открытый в контексте окна per Monitor версии 2, будет работать с точки зрения DPI, связанного с этим окном.

DPI_AWARENESS_CONTEXT_UNAWARE_GDISCALED

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

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

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

Требования

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

См. также

AreDpiAwarenessContextsEqual

GetAwarenessFromDpiAwarenessContext

GetDpiFromDpiAwarenessContext

GetThreadDpiAwarenessContext

GetWindowDpiAwarenessContext

IsValidDpiAwarenessContext

SetProcessDpiAwarenessContext

SetThreadDpiAwarenessContext