【发布时间】:2010-12-16 20:44:48
【问题描述】:
那些该死的用户和他们最小化的窗口。
在 C# 中,如果我有一个窗口的 HWND,有没有办法判断它是否在桌面上可见?
【问题讨论】:
-
我们也是用户,如果不为用户编程,你为谁编程?在撰写本文时,我有 5 个最小化的窗口
-
五年前讽刺的回声。
那些该死的用户和他们最小化的窗口。
在 C# 中,如果我有一个窗口的 HWND,有没有办法判断它是否在桌面上可见?
【问题讨论】:
bool isHwndVisible = Control.FromHandle(handle).Visible
【讨论】:
有Visible 属性,但它检查可见标志,它不会告诉您窗口是否被另一个窗口覆盖,或者不在屏幕上等。这要棘手得多。不过,Raymond Chen 有一些建议:
http://blogs.msdn.com/oldnewthing/archive/2003/09/02/54758.aspx
http://blogs.msdn.com/oldnewthing/archive/2003/08/29/54728.aspx
【讨论】:
GetWindowPlacement 函数返回一个 WINDOWPLACEMENT 结构,其中包含一个字段 showCmd:
指定窗口的当前显示状态。
这个细节读起来好像你要设置窗口状态,但我怀疑这是因为它们是从其他地方复制的并且没有更新。
【讨论】: