在win32编程中,如果我创建另一个顶级窗口,我需要一个单独的窗口过程吗?

时间:2013-08-10 20:26:15

标签: winapi

我在我的应用程序中遇到了一个问题,它创建了几个顶级窗口(除了主窗口):

问题是,如果我关闭任何顶级窗口,我的主窗口也会关闭。我花了几天时间来了解发生了什么,我想我得到了它。它看起来像其他顶级窗口使用我的主窗口使用相同的窗口过程,因此当我关闭任何顶级窗口时,窗口过程收到WM_CLOSE消息并关闭整个应用程序

因此我有一个问题 - 如果我创建一个新的顶级窗口,是否需要注册一个新类并为其关联一个新的窗口过程?

1 个答案:

答案 0 :(得分:3)

您的窗口过程可能是通过调用PostQuitMessage来响应WM_DESTROY。这导致了这个过程。您应该只在主窗口关闭时调用PostQuitMessage。只要使用处理WM_DESTROY消息的窗口句柄进行区分,就可以从共享窗口过程执行此操作。