Windows API 有 ChildWindowFromPoint()
和 ChildWindowFromPointEx()
函数,它们的区别在于后者有 uFlags 参数指定要跳过的窗口。
看起来如果我将 CWP_ALL
传递给 ChildWindowFromPointEx()
,我将获得与使用 ChildWindowFromPoint()
完全相同的效果>.
uFlags 参数的唯一区别是什么?我可以只在任何地方使用 ChildWindowFromPointEx()
并在需要 ChildWindowFromPoint()
行为时传递 CWP_ALL
吗?
最佳答案
如果有帮助的话,我破解了一个调用这两个函数的快速测试应用程序,然后进入反汇编的 USER32.DLL 以查看调用的位置。
对于 ChildWindowFromPoint
,在一些序言之后,我达到了这一点:
主要处理委托(delegate)给 75612495
的调用。
然后,对于 ChildWindowFromPointEx
,我进入程序集并得到:
因为那个入口点是第一个函数调用的目标,所以我很清楚 ChildWindowFromPoint
调用 ChildWindowFromPointEx
,大概是 uFlags
设置为 CWP_ALL
(我的汇编程序知识有限,但我正在努力查看调用之前的 push 0
- CWP_ALL
已定义为零)。
关于windows - 除了 "flags"参数外,ChildWindowFromPointEx 和 ChildWindowFromPoint 有何不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20066504/