为什么对话的父窗口没有小时候的对话?

时间:2015-04-17 15:27:14

标签: win32gui

我注意到在Windows中的大多数(如果不是全部)应用程序中,对话框没有相对于其父对象的双向引用。即对话的父级似乎没有引用子窗口列表中的对话。我以前注意到了这一点,但现在它真的让我烦恼。这是设计的吗?有没有办法获得窗口对话框的句柄(一个是模态的,一个或多个是非模态的),只给出窗口的句柄?

1 个答案:

答案 0 :(得分:0)

我认为您可能会将所有者混淆。 child windowowned window之间存在区别。两者都是使用SetParent()hwndParent的{​​{1}}参数建立的,但区别在于拥有的窗口是顶级重叠/弹出窗口,没有CreateWindow/Ex()样式标志(除了系统拥有的一些顶级窗口)。可以使用WS_CHILD枚举子窗口,而没有单个API枚举拥有的窗口。您必须使用EnumChildWindows()枚举顶级窗口,使用EnumWindows() / GetParent()检查每个窗口是否归特定所有者所有。