【问题标题】:How can i find the size of a window?我怎样才能找到一个窗口的大小?
【发布时间】:2014-06-10 05:35:36
【问题描述】:

例如,如果我有这个窗口(它不是这个项目的一部分): 有没有办法获得这个窗口的大小? (int x 和 y)

谢谢, 起义

【问题讨论】:

    标签: window size overlay


    【解决方案1】:

    如果您有窗口的HWND,那么您可以使用GetWindowRect()GetWindowPlacement() 来获取它的位置和尺寸。

    更新:在 Vista 及更高版本上,GetWindowRect() 可以报告不考虑 Glass/Aero 的值。为了解决这个问题,您可以使用 DwmGetWindowAttribute()DWMWA_EXTENDED_FRAME_BOUNDS 属性。

    【讨论】:

    • 我试过了,但它给出了错误的尺寸,大约是应该的 1.5 倍,在各种窗口(谷歌浏览器、Skype 等)上,我该如何解决这个/还有其他方法吗?
    • 我有点困惑,那么正确的代码是什么?因为那个线程中的代码只是给出了一堆错误。编辑:我尝试了 DwmGetWindowAttribute 但这也给出了错误,它似乎无法识别同一部分中的 DWM 或 HRESULT。 EDIT2: 刚刚注意到它:这是一个 C++ 代码,也许得到了 C# 代码?
    猜你喜欢
    • 1970-01-01
    • 2011-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-28
    • 1970-01-01
    • 1970-01-01
    • 2014-07-05
    相关资源
    最近更新 更多