首页 > 解决方案 > 如何将模态位置设置为屏幕左下角?

问题描述

我正在使用 WinApi 和 C++,我正在尝试将模式的位置设置到屏幕的左下角,但我不知道如何。我希望这个程序适用于不同的屏幕分辨率并考虑到任务栏(模式必须在它的正上方)。我目前使用这个设置窗口位置:

SetWindowPos( GetHwnd(), HWND_TOPMOST, 0,0,0,0, SWP_NOMOVE | SWP_NOSIZE );

标签: c++windowswinapimodal-dialog

解决方案


您可以使用MonitorFromWindow检索显示窗口的监视器的句柄。

然后使用GetMonitorInfo获取该监视器的MONITORINFO

在 MONITORINFO 中,您将找到RECT rcWork描述工作区域的信息,即不包括任务栏,无论它在哪里。

使用GetWindowRect找出窗口的大小并将其放在rcWork.

请注意,在这种情况下您不应该使用SWP_NOMOVE ,因为这

保留当前位置(忽略 X 和 Y 参数)。


推荐阅读