如何获得最小化窗口的恢复边界?
Posted
技术标签:
【中文标题】如何获得最小化窗口的恢复边界?【英文标题】:How to get minimized window's RESTORED bounds? 【发布时间】:2010-10-25 21:28:10 【问题描述】:很容易获得屏幕上所有可见窗口的边界矩形。判断任何窗口是否具有标志性也很容易。
但是对于最小化的窗口,从 User32.GetWindowInfo.rcWindow 报告的 Top 和 Left 为 -32000。我已经查看了整个 API,找不到返回如果单击或切换到窗口将恢复到的边界的调用。
感谢您的任何指点。
【问题讨论】:
【参考方案1】:查看 User32.GetWindowPlacement
【讨论】:
似乎工作得很好,谢谢...除了一些所有者绘制的窗口,如 WinAmp,它报告其边界为 X=3806,Y=-30000,Width=4081,Height=-29884 任何知道如何获得它的实际界限? 嗯,检查“不可能”的值并调用 GetWindowRect/send WM_NCCALCSIZE 是我想到的唯一解决方案。【参考方案2】:对于 C/C++:
WINDOWPLACEMENT wp;
::ZeroMemory(&wp, sizeof(WINDOWPLACEMENT));
::GetWindowPlacement(hWnd, &wp);
【讨论】:
以上是关于如何获得最小化窗口的恢复边界?的主要内容,如果未能解决你的问题,请参考以下文章