【问题标题】:How to get minimized window's RESTORED bounds?如何获得最小化窗口的恢复边界?
【发布时间】:2010-10-25 21:28:10
【问题描述】:

很容易获得屏幕上所有可见窗口的边界矩形。判断任何窗口是否具有标志性也很容易。

但是对于最小化的窗口,从 User32.GetWindowInfo.rcWindow 报告的 Top 和 Left 为 -32000。我已经查看了整个 API,找不到返回如果单击或切换到窗口将恢复到的边界的调用。

感谢您的任何指点。

【问题讨论】:

    标签: windows interop user32


    【解决方案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);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多