多窗口程序
问题描述:
我阅读了很多关于这个主题的文章,其中有一些是在这里,在stackoverflow上,但没有人问我的问题。我会尽量具体。多窗口程序
我需要创建一个主窗口(窗口类“a”)的应用程序(本机WinAPI)。当用户点击一个按钮时,弹出一个“b”类的窗口。它可能是莫代尔的,我现在不在乎。
我试着用两个窗口类和两个窗口过程做一个应用程序。但问题是,当我关闭第二个窗口时,整个应用程序关闭。
谢谢。
答
根据猜测,第二个窗口的窗口过程基于主窗口的窗口过程,因此当它收到WM_DESTROY
时,它调用PostQuitMessage
。这对于顶层窗口来说是正常的,因为用户期望销毁它意味着退出应用程序。对于子窗口(模态或其他方式),情况并非如此,所以孩子应该而不是(再次,通常)在其WM_DESTROY
处理程序中调用PostQuitMessage
。
谢谢,这是解决方案。实际上,我在CreateWindow调用中颠倒了类名和标题参数(看起来像头疼,它工作得很好)。所以弹出窗口使用了主窗口的程序,它具有PostQuitMessage调用。不管怎样,谢谢。 – GeorgeK 2010-06-27 16:44:22