【发布时间】:2010-12-29 21:19:20
【问题描述】:
我正在编写一个窗口间谍类型的东西来为我拥有的应用程序添加一个功能。我已经让所有代码工作了,但有时 WindowFromPoint 返回控件的句柄而不是包含窗口。出于我的目的,我只关心主包含窗口。有没有办法让我排除控件?或者可能检测到结果是一个控件并向上递归直到我到达包含窗口?
【问题讨论】:
标签: winapi
我正在编写一个窗口间谍类型的东西来为我拥有的应用程序添加一个功能。我已经让所有代码工作了,但有时 WindowFromPoint 返回控件的句柄而不是包含窗口。出于我的目的,我只关心主包含窗口。有没有办法让我排除控件?或者可能检测到结果是一个控件并向上递归直到我到达包含窗口?
【问题讨论】:
标签: winapi
您可以测试 WS_CHILD 标志(GetWindowLongPtr 和 'GWL_STYLE'),如果存在,则调用 GetAncestor 和 'GA_ROOT' 作为 'gaFlags'。
【讨论】:
GetWindowLongPtr 返回一个 IntPtr。由于WS_CHILD 很长,如何将它们转换为相同的格式以检查标志?
ToInt64() 对WS_CHILD 进行了标志检查。