多窗口程序

问题描述:

我阅读了很多关于这个主题的文章,其中有一些是在这里,在stackoverflow上,但没有人问我的问题。我会尽量具体。多窗口程序

我需要创建一个主窗口(窗口类“a”)的应用程序(本机WinAPI)。当用户点击一个按钮时,弹出一个“b”类的窗口。它可能是莫代尔的,我现在不在乎。

我试着用两个窗口类和两个窗口过程做一个应用程序。但问题是,当我关闭第二个窗口时,整个应用程序关闭。

谢谢。

根据猜测,第二个窗口的窗口过程基于主窗口的窗口过程,因此当它收到WM_DESTROY时,它调用PostQuitMessage。这对于顶层窗口来说是正常的,因为用户期望销毁它意味着退出应用程序。对于子窗口(模态或其他方式),情况并非如此,所以孩子应该而不是(再次,通常)在其WM_DESTROY处理程序中调用PostQuitMessage

+0

谢谢,这是解决方案。实际上,我在CreateWindow调用中颠倒了类名和标题参数(看起来像头疼,它工作得很好)。所以弹出窗口使用了主窗口的程序,它具有PostQuitMessage调用。不管怎样,谢谢。 – GeorgeK 2010-06-27 16:44:22