我注意到在Windows中的大多数(如果不是全部)应用程序中,对话框没有相对于其父对象的双向引用。即对话的父级似乎没有引用子窗口列表中的对话。我以前注意到了这一点,但现在它真的让我烦恼。这是设计的吗?有没有办法获得窗口对话框的句柄(一个是模态的,一个或多个是非模态的),只给出窗口的句柄?
答案 0 :(得分:0)
我认为您可能会将父与所有者混淆。 child window和owned window之间存在区别。两者都是使用SetParent()
或hwndParent
的{{1}}参数建立的,但区别在于拥有的窗口是顶级重叠/弹出窗口,没有CreateWindow/Ex()
样式标志(除了系统拥有的一些顶级窗口)。可以使用WS_CHILD
枚举子窗口,而没有单个API枚举拥有的窗口。您必须使用EnumChildWindows()
枚举顶级窗口,使用EnumWindows()
/ GetParent()
检查每个窗口是否归特定所有者所有。