描述:
在意个窗口的Classname比如:ATL:07C246F0里面有一个类似RichEditBox的控件,老是得不到它的句柄,总是得到ATL:07C246F0而已,高手指点,该怎么得到。通过Spy++和spy4win以及自己写的代码都得不到,这个控件的父子关系如下
// 以下是查找窗口 ATL:07C246F0 的代码:
// 在窗口标题不能确定的情况下可将标题设为NULL
HWND MyFindWindow()
{
const int MyMaxParentWinCount = 4;
// 父窗口类名数组
char *A_szClassName[MyMaxParentWinCount] =
{
"WindowsForms10.Window.8.app3",
"ATL:07C24288",
"ATL:SysTabControl32",
"ATL:07C246F0"
};
// 父窗口标题数组
char *A_szWinName[MyMaxParentWinCount] =
{
"Log Server 0.0.1",
"",
"",
"Log Window"
};
// 首先求得顶级父窗口
HWND hLastWin = FindWindow(A_szClassName[0], A_szWinName[0]);
// 逐次用FindWindowEx函数求出各级子窗口
for(int i=1; i<MyMaxParentWinCount; i++)
{
hLastWin = FindWindowEx(hLastWin, NULL,
A_szClassName[i], A_szWinName[i]);
}
return hLastWin;
}
我总是得到ATL:07C246F0的“Log Window”文本,就是得不到这个窗口里面包含的一个控件的HWND,这个控件好像是一个AxPanel(控件不是我写的),是一个可编辑的控件。