ATL复合控件得句柄获取

名剑传奇 2007-03-27 04:44:00
在意个窗口的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(控件不是我写的),是一个可编辑的控件。
...全文
326 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
名剑传奇 2007-03-28
  • 打赏
  • 举报
回复
天啊,没有高手?
名剑传奇 2007-03-27
  • 打赏
  • 举报
回复
补充:这个控件是一个Activex控件,可以在IE界面使用。估计使用ATL技术写的ActiveX控件。

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧