cbuilder:如何遍历得到某只知句柄的父窗口中所有类型的子类的句柄??

winhelp 2000-11-04 12:45:00
我在编写一个窗口管理程序,其中当且仅当只有一个已知项即知道父窗口的句柄时(该窗口可能也是别的应用程序产生的,不一定知道它都有些什么样的窗口类型的子窗口控件),需要遍历该窗口中所拥有的全部子窗口,包括具有窗口句柄的控件型的子窗口。

当我用EnumWindows/EnumWindowProc函数或者通过循环用GetWindow/GetChildWindow实现程序时,发现两者实现的结果是相同的(不奇怪)
但奇怪的是,如果在某具有父级关系的窗口中当放入了PageControl页控件时,如果这个控件的多页中某页在自定义函数执行前,尚没有一次被点击显示在最上页时,用以上方法是无法得到该PageControl页控件中子页的窗口句柄的。只有你将所有的子页都点激活一遍以后,再执行我的自定义函数才能通过以上函数找到它。
请问:我如何才能编程实现不需人工激活就可以通过遍历得到如PageControl页的所有子页的控件句柄的?
请问:我如何遍历得到窗口中所有存在的图形的句柄?图形按钮的句柄?菜单项的句柄?
请问:有何种方法可以统一地得到某一窗口中有句柄类型的所有控件的句柄(包括子型窗口、图形、菜单。。。。。。。所有的。?

...全文
169 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
winhelp 2000-11-12
  • 打赏
  • 举报
回复
已经解决谢谢各位.
wxz 2000-11-06
  • 打赏
  • 举报
回复
下载
http://coobe.cs.hn.cninfo.net/~cbstep/download/taskshow/taskshow.zip
看看,显示系统中所有的进程(9x)和所有的窗口,有bcb源程序
老魏2006 2000-11-04
  • 打赏
  • 举报
回复
这是因为,在你点击某一个页面之前,他还没有被创建。之所以是这样,主要是为了更快的显示出窗口来,毕竟,用户还没有看到被隐藏的页面。

你可以试一试TForm.Controls[i]查询。

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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