考虑这种情况:获取最大化最小化窗口的窗口位置
- 多显示器系统上,
- 一个应用程序最大化,然后最小化,
- 在我的应用我有没有这HWND以上应用程序的主窗口
现在,如何确定从最小化状态恢复时窗口将显示哪个监视器? GetWindowRect和GetWindowInfo结果为负值,显然对所有显示器都是一样的。 GetWindowPlacement在rcNormalPosition中给出了很好的值,但是这些是应用程序在未最大化时返回的坐标,可能部分或全部位于另一个显示器上。
考虑这种情况:获取最大化最小化窗口的窗口位置
现在,如何确定从最小化状态恢复时窗口将显示哪个监视器? GetWindowRect和GetWindowInfo结果为负值,显然对所有显示器都是一样的。 GetWindowPlacement在rcNormalPosition中给出了很好的值,但是这些是应用程序在未最大化时返回的坐标,可能部分或全部位于另一个显示器上。
尝试MonitorFromRect
功能与rcNormalPosition
和MONITOR_DEFAULTTONEAREST
标志。之后 - 致电GetMonitorInfo
确定工作监控区域。
仍然有机会rcNormalPosition(非最小化时窗口的坐标)在另一个监视器上,而不是当前最大化的那个监视器上,但默认情况下它应该已经最大化到监视器上,大部分窗口处于打开状态,所以我我会接受这个答案。 – 2012-07-22 19:00:22
我从来没有试过这个,但'WINDOWPLACEMENT.ptMaxPosition'给你答案? – arx 2012-07-20 22:59:51
不是,那些持有从GetWindowRect和GetWindowInfo获得的相同负值 – 2012-07-21 11:19:02
负值并不意味着它们是错误*值。虚拟桌面包含具有负值坐标值的点。 – 2012-07-22 07:00:53