请问:怎样获得窗口的后代窗口句柄?

Haiduk2006 2006-04-30 07:49:01
怎样获得窗口的后代窗口句柄?
怎样获得主窗口的子窗口的子窗口句柄?
...全文
154 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
soaroc 2006-05-01
  • 打赏
  • 举报
回复
使用GetDescendantWindow 可以获得任意的你想要的字窗口的指针。然后使用窗口自带的m_hWnd即可获取其句柄。你查一查MSDN就会立即明白
Haiduk2006 2006-05-01
  • 打赏
  • 举报
回复
麻烦上面那位老兄,能详细点么,最好有源代码?
贵子潘 2006-05-01
  • 打赏
  • 举报
回复
用GetWindow(hParent,GW_CHILD)循环啊

HWND hParent=你要的窗口句柄;
while(hParent=GetWindow(hParent,GW_CHILD))
{
.....
}
函数功能 在窗口列表中寻找与指定条件相符的第一个子窗口 。 该函数获得一个窗口句柄,该窗口的类名和窗口名与给定的字符串相匹配。这个函数查找子窗口,从排在给定的子窗口后面的下一个子窗口开始。在查找时不区分大小写。 参数; (1)hwndParent:要查找的子窗口所在的父窗口句柄(如果设置了hwndParent,则表示从这个hwndParent指向的父窗口中搜索子窗口)。 如果hwndParent为 0 ,则函数以桌面窗口为父窗口,查找桌面窗口的所有子窗口。 Windows NT5.0 and later:如果hwndParent是HWND_MESSAGE,函数仅查找所有消息窗口。 (2)hwndChildAfter :子窗口句柄。查找从在Z序中的下一个子窗口开始。子窗口必须为hwndParent窗口的直接子窗口而非后代窗口。如果HwndChildAfter为NULL,查找从hwndParent的第一个子窗口开始。如果hwndParent 和 hwndChildAfter同时为NULL,则函数查找所有的顶层窗口及消息窗口。 (3)lpszClass:指向一个指定了类名的空结束字符串,或一个标识类名字符串的成员的指针。如果该参数为一个成员,则它必须为前次调用theGlobaIAddAtom函数产生的全局成员。该成员为16位,必须位于lpClassName的低16位,高位必须为0。 (4)lpszWindow:指向一个指定了窗口名(窗口标题)的空结束字符串。如果该参数为 NULL,则为所有窗口全匹配。 返回值 Long,找到的窗口句柄。如未找到相符窗口,则返回零。会设置GetLastError 如果函数成功,返回值为具有指定类名和窗口名的窗口句柄。如果函数失败,返回值为NULL。 若想获得更多错误信息,请调用GetLastError函数。

15,980

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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