【问题标题】:Real hwnd from the point从这一点开始真正的hwnd
【发布时间】:2011-05-08 08:46:45
【问题描述】:

当我们使用WindowFromPointwinapi函数时,我们通常可以得到这种情况,当Point指定一个窗口内的某个控件时。在这种情况下,WindowFromPoint 将句柄返回到该控件,而不是处理该控件的窗口。

例如,在我的小型测试应用程序中,如果我指向 chrome 浏览器的“主体”,我将获得 class= Chrome_RenderWidgetHostHWND 及其 hwnd 的控件。

但我需要的是获取该控件的“父”窗口(显然应该是 chrome 窗口)。

【问题讨论】:

  • “指针”是指“句柄”。
  • @Andreas Rejbrand:是的,窗把手。已修复,谢谢。

标签: winapi


【解决方案1】:

使用GetAncestor() 传递GA_PARENT 遍历父母。这与调用 GetParent() 不同,如果窗口是顶级窗口,它将返回所有者。

【讨论】:

  • 是的,但似乎GA_ROOT 更符合我的期望,不是吗?
  • @zerkms 也许GA_ROOT 更好,我不确定您正在寻找哪个窗口。只有你知道! ;-)
  • 常规窗口是所有控件的顶部容器,带有标题和最小化/最大化/关闭按钮的窗口。
  • @zerkms 在这种情况下,GA_ROOT 将为您提供顶级窗口。
  • 好的,谢谢。 /me 假装他得到了第二个GetAncestor() 参数之间的区别。
【解决方案2】:

你不能只用GetParent吗?继续遍历,直到找到桌面窗口。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-25
    • 2022-07-26
    相关资源
    最近更新 更多