WM_GETDPISCALEDSIZE 消息

此消息告知操作系统窗口的大小将调整为默认值以外的其他尺寸。

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

使用此消息可更改随 WM_DPICHANGED 提供的矩形的大小。

#define WM_GETDPISCALEDSIZE       0x02E4

参数

wParam

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

lParam

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

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

返回值

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

注解

此消息仅发送到具有“每显示器 V2”的 DPI 感知上下文的顶级窗口。

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

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

要求

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