我的任务是,一旦用户点击窗口(可以有各种级别的子窗口),递归地捕获主窗口的所有子窗口,并构建一个树结构,其中所有子窗口应该排列在他们适当的等级层次。 父节点应该是主窗口,直接子窗口应该是级别子窗口,然后是2级子窗口,即应该将大孩子正确地分配给他们的父母。 我正在使用EnumChildWindows API列出所有子窗口,但问题是它非常粗略地列出所有的孩子和孙子,我无法如何划分或了解哪些大孩子属于哪个孩子?有没有一种方法可以使用EnumChildWindows生成更结构化的输出? 请给我一些指示。谢谢。
答案 0 :(得分:1)
EnumChildWindows()
被记录为返回所有儿童和大孩子等,无法区分它们。您可以调用GetParent()
来检查每个父窗口是什么,或者在循环中使用GetWindow()
并自己递归。
GetParent()
似乎更安全,因为它利用了EnumChildWindows()
的原子性和安全性。