首页 > 解决方案 > ChildWindowFromPoint 无法在选项卡对话框中获取按钮/文本 hwnd - MFC

问题描述

我正在研究如何通过使用鼠标光标指向窗口来获取窗口句柄。问题是我无法获取选项卡对话框内的按钮/文本。我使用 Spy++ 来获取层次结构,有 3 层可以到达所需的按钮。主窗口 (#32770) - Tab1 (#32770) - Btn1(按钮)。

而不是得到 Btn1,我总是得到 SysTabControl32 的窗口,它与 Tab1 具有相同的层次结构级别,这意味着我只能到达 SysTabControl32(不是我想要的)而无法到达 Tab1。

如果我使用 WindowFromPoint 并将鼠标指向 Btn1,我将获得 SysTabControl32;使用 ChildWindowFromPoint,我会得到 0 作为返回值;使用 RealChildWindowFromPoint,我会得到 SysTabControl32。

Spy++ 只能检测 MainWindow、SysTabControl32 和 Tab1,但不能检测 Btn1。我可以使用 EnumChildWindow 获取所有子窗口,但它只是表明这些子窗口存在,而 ...FromPoint 函数仍然找不到 Tab1 和那些子窗口。

有谁知道这种情况的原因是什么?似乎 SysTabControl32 (TabCtrl) 阻止了 Tab1 (TabDialog),是吗?还是开发者创建的tab结构?

请帮忙..谢谢

标签: c++winapihwndmouse-cursorctabctrl

解决方案


推荐阅读