【问题标题】:Is HWND visible?HWND 是否可见?
【发布时间】:2010-12-16 20:44:48
【问题描述】:

那些该死的用户和他们最小化的窗口。

在 C# 中,如果我有一个窗口的 HWND,有没有办法判断它是否在桌面上可见?

【问题讨论】:

  • 我们也是用户,如果不为用户编程,你为谁编程?在撰写本文时,我有 5 个最小化的窗口
  • 五年前讽刺的回声。

标签: c# windows hwnd


【解决方案1】:
bool isHwndVisible = Control.FromHandle(handle).Visible

【讨论】:

  • 这仅适用于当前应用程序中的(托管)控件。我认为 OP 指的是另一个应用程序。
【解决方案2】:

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

【讨论】:

    【解决方案3】:

    GetWindowPlacement 函数返回一个 WINDOWPLACEMENT 结构,其中包含一个字段 showCmd

    指定窗口的当前显示状态。

    这个细节读起来好像你要设置窗口状态,但我怀疑这是因为它们是从其他地方复制的并且没有更新。

    【讨论】:

    • 唷,谢谢,花了至少 10 分钟无聊的谷歌搜索来找出该死的人应该如何通过 WinAPI 检查窗口可见性......这个名字有点晦涩,当然还有关于如何的文档隐藏一个窗口不会链接到它...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多