перечисление DPI_AWARENESS (windef.h)
Определяет параметр точек на дюйм (dpi) для потока, процесса или окна.
Синтаксис
typedef enum DPI_AWARENESS {
DPI_AWARENESS_INVALID = -1,
DPI_AWARENESS_UNAWARE = 0,
DPI_AWARENESS_SYSTEM_AWARE = 1,
DPI_AWARENESS_PER_MONITOR_AWARE = 2
} ;
Константы
DPI_AWARENESS_INVALID Значение: -1 Недопустимая осведомленность о DPI. Это недопустимое значение осведомленности о DPI. |
DPI_AWARENESS_UNAWARE Значение: 0 DPI не знает. Этот процесс не масштабируется при изменении DPI и всегда предполагается, что коэффициент масштабирования составляет 100 % (96 точек на дюйм). Он будет автоматически масштабирован системой при любом другом параметре DPI. |
DPI_AWARENESS_SYSTEM_AWARE Значение: 1 Учитывается системное разрешение. Этот процесс не масштабируется для изменения DPI. Он будет запрашивать DPI один раз и использовать это значение в течение времени существования процесса. Если значение DPI изменится, процесс не будет адаптироваться к новому значению DPI. Он будет автоматически масштабироваться системой при изменении значения DPI по сравнению с системным значением. |
DPI_AWARENESS_PER_MONITOR_AWARE Значение: 2 Для каждого монитора учитывается DPI. Этот процесс проверяет наличие DPI при его создании и корректирует коэффициент масштабирования при каждом изменении DPI. Эти процессы не масштабируются системой автоматически. |
Комментарии
В предыдущих версиях Windows значения DPI устанавливались только один раз для всего приложения. Для этих приложений тип PROCESS_DPI_AWARENESS определяет тип осведомленности о DPI для всего приложения. В настоящее время осведомленность о DPI определяется на уровне отдельного потока, окна или процесса и обозначается типом DPI_AWARENESS . Хотя фокус переместился с уровня процесса на уровень потока, различные типы осведомленности о DPI одинаковы: неосведомленный, системный и на монитор. Подробные описания и некоторые примеры различных типов DPI см. в разделе PROCESS_DPI_AWARENESS.
Старая рекомендация заключалась в определении уровня осведомленности о DPI в манифесте приложения с помощью параметра dpiAware , как описано в PROCESS_DPI_AWARENESS. Теперь, когда осведомленность о DPI привязана к потокам и окнам, а не ко всему приложению, в манифест приложения добавляется новый параметр windows. Этот параметр имеет значение dpiAwareness и переопределяет любой параметр dpiAware , если оба параметра присутствуют в манифесте. Хотя по-прежнему рекомендуется использовать манифест, теперь вы можете изменить сведения о DPI во время работы приложения с помощью SetThreadDpiAwarenessContext.
Важно отметить, что если в приложении есть окно DPI_AWARENESS_PER_MONITOR_AWARE , вы отвечаете за отслеживание DPI, отвечая на WM_DPICHANGED сообщения.
Примеры
В этом фрагменте кода показано, как задать значение DPI_AWARENESS_SYSTEM_AWARE в манифесте приложения.
<dpiAwareness>System</dpiAwareness>
В этом фрагменте кода показано, как задать значение DPI_AWARENESS_PER_MONITOR_AWARE в манифесте приложения.
<dpiAwareness>PerMonitor</dpiAwareness>
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 10 [только классические приложения] |
Минимальная версия сервера | Ни одна версия не поддерживается |
Верхняя часть | windef.h |