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 设置上自动缩放它。 |
DPI_AWARENESS_SYSTEM_AWARE 值:1 系统 DPI 感知。 此过程不会缩放 DPI 更改。 它将查询 DPI 一次,并在进程的生存期内使用该值。 如果 DPI 更改,则进程不会调整为新的 DPI 值。 当 DPI 从系统值更改时,系统会自动纵向扩展或缩减它。 |
DPI_AWARENESS_PER_MONITOR_AWARE 值: 2 每个监视器的 DPI 感知。 此过程在创建 DPI 时检查 DPI,并在 DPI 更改时调整比例因子。 系统不会自动缩放这些进程。 |
注解
在早期版本的 Windows 中,DPI 值仅为整个应用程序设置一次。 对于这些应用, PROCESS_DPI_AWARENESS 类型确定了整个应用程序的 DPI 感知类型。 目前,DPI 感知在单个线程、窗口或进程级别上定义,并由 DPI_AWARENESS 类型指示。 虽然焦点从进程级别转移到线程级别,但不同类型的 DPI 感知是相同的:无感知、系统感知和每个监视器感知。 有关不同 DPI 类型的详细说明和一些示例,请参阅 PROCESS_DPI_AWARENESS。
旧建议是使用设置 dpiAware 在应用程序清单中定义 DPI 感知级别,如 PROCESS_DPI_AWARENESS 中所述。 现在,DPI 感知已绑定到线程和窗口,而不是整个应用程序,新的窗口设置将添加到应用清单。 此设置为 dpiAwareness ,如果清单中存在任何 dpiAware 设置,则此设置将替代这些设置。 虽然仍建议使用清单,但现在可以使用 SetThreadDpiAwarenessContext 在应用运行时更改 DPI 感知。
请务必注意,如果应用程序具有 DPI_AWARENESS_PER_MONITOR_AWARE 窗口,则负责通过响应 WM_DPICHANGED 消息来跟踪 DPI。
示例
此代码片段演示如何在应用程序清单中将 值设置为 DPI_AWARENESS_SYSTEM_AWARE 。
<dpiAwareness>System</dpiAwareness>
此代码片段演示如何在应用程序清单中将 值设置为 DPI_AWARENESS_PER_MONITOR_AWARE 。
<dpiAwareness>PerMonitor</dpiAwareness>
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 10 [仅限桌面应用] |
最低受支持的服务器 | 无受支持的版本 |
标头 | windef.h |