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
- 也称为 按监视器 v2。 与原始的按监视器 DPI 感知模式相较,使应用程序能够在每个顶级窗口的基础上访问与 DPI 相关的新缩放行为。
- 子窗口 DPI 更改通知 - 在 Per Monitor v2 上下文中,将通知整个窗口树发生的任何 DPI 更改。
- 非工作区的缩放 - 所有窗口将自动以 DPI 敏感方式绘制其非工作区。 不需要调用 EnableNonClientDpiScaling 。
- 缩放 Win32 菜单 - 在每监视器 v2 上下文中创建的所有 NTUSER 菜单都将按监视器缩放。
- 对话缩放 - 在 Per Monitor v2 上下文中创建的 Win32 对话将自动响应 DPI 更改。
- 改进了 comctl32 控件的缩放 - 各种 comctl32 控件改进了 Per Monitor v2 上下文中的 DPI 缩放行为。
- 改进了主题设置行为 - 在 Per Monitor v2 窗口上下文中打开的 UxTheme 句柄将按照与该窗口关联的 DPI 运行。
Per Monitor v2 已在 Windows 10的 Creators Update 中提供,在早期版本的操作系统上不可用。
引入的其他行为如下所示:
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 [仅限桌面应用] |
最低受支持的服务器 |
无受支持的版本 |
标头 |
|