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 发生更改时调整比例因子。 系统不会自动缩放这些进程。
DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE_V2
- 也称为 Per Monitor v2。 与原始按监视器 DPI 感知模式的提升,使应用程序能够基于每个顶级窗口访问与 DPI 相关的新缩放行为。
- 子窗口 DPI 更改通知 - 在 Per Monitor v2 上下文中,将通知整个窗口树发生的任何 DPI 更改。
- 非工作区 的缩放 - 所有窗口将自动以 DPI 敏感方式绘制其非工作区。 不需要调用 EnableNonClientDpiScaling 。
- 缩放 Win32 菜单 - 在 Per Monitor v2 上下文中创建的所有 NTUSER 菜单将以按监视器的方式缩放。
- 对话缩放 - 在 Per Monitor v2 上下文中创建的 Win32 对话将自动响应 DPI 更改。
- 改进了 comctl32 控件 的缩放 - 各种 comctl32 控件改进了 Per Monitor v2 上下文中的 DPI 缩放行为。
- 改进了主题设置行为 - 在 Per Monitor v2 窗口的上下文中打开的 UxTheme 句柄将在与该窗口关联的 DPI 方面运行。
每个监视器 v2 在 Windows 10 的创意者更新(也称为版本 1703)中提供,在早期版本的操作系统上不可用。
引入的其他行为如下所示:
DPI_AWARENESS_CONTEXT_UNAWARE_GDISCALED
DPI 不知道基于 GDI 的内容的质量。 此模式的行为类似于DPI_AWARENESS_CONTEXT_UNAWARE,但也使系统能够在窗口显示在高 DPI 监视器上时自动提高文本和其他基于 GDI 的基元的呈现质量。
有关详细信息,请参阅 改进基于 GDI 的桌面应用中的高 DPI 体验。
DPI_AWARENESS_CONTEXT_UNAWARE_GDISCALED是在 2018 年 10 月 Windows 10 更新(也称为版本 1809)中引入的。
要求
要求 | 值 |
---|---|
最低受支持的客户端 |
Windows 10 版本 1607 [仅限桌面应用] |
支持的最低服务器版本 |
不支持 |
头文件 |
|