WM_GETDPISCALEDSIZE消息

此消息告知作系统窗口的大小将调整为默认值以外的维度。

在发送WM_DPICHANGED消息之前,此消息会发送到具有每监视器 v2 DPI_AWARENESS_CONTEXT的顶级窗口,并允许该窗口计算其挂起 DPI 更改所需的大小。 由于线性 DPI 缩放是默认行为,因此仅在窗口想要以非线性方式缩放的情况下才有用。 如果应用程序响应此消息,生成的大小将是发送到 WM_DPICHANGED的候选矩形。

使用此消息可更改 随WM_DPICHANGED一起提供的 rect 大小。

#define WM_GETDPISCALEDSIZE       0x02E4

参数

wParam

WPARAM 包含 DPI 值。 应用程序设置的缩放窗口大小需要计算,就像窗口要切换到此 DPI 一样。

lParam

LPARAM 是指向 SIZE 结构的 in/out 指针。 LPARAM 中的 _In_ 值是在用户发起的移动或对 SetWindowPos 的调用之后窗口的挂起大小。 如果正在调整窗口大小,则此大小不一定与收到此消息时窗口的当前大小相同。

LPARAM 中的 _Out_ 值应由应用程序写入,以指定与 WPARAM 中提供的 DPI 值对应的所需缩放窗口大小。

返回值

该函数返回 BOOL。 返回 TRUE 表示已计算新大小。 返回 FALSE 表示不会处理消息,并且默认的线性 DPI 缩放将应用于窗口。

注解

此消息仅发送到具有 Per Monitor v2 的 DPI 感知上下文的顶级窗口。

此事件是促进正常非线性缩放所必需的,并确保窗口的位置保持与光标的关系以及跨监视器来回移动时保持不变。

DefWindowProc 中没有对此消息的特定默认处理。 对于它未显式处理的所有消息, DefWindowProc 将为此消息返回零。 如上所述,此返回告知系统使用默认线性行为。

要求

要求 价值
支持的最低客户端
Windows 10 版本 1703 [仅限桌面应用]
支持的最低服务器
Windows Server 2016 [仅限桌面应用]
标题
Winuser.h