我在我的应用程序中遇到了一个问题,它创建了几个顶级窗口(除了主窗口):
问题是,如果我关闭任何顶级窗口,我的主窗口也会关闭。我花了几天时间来了解发生了什么,我想我得到了它。它看起来像其他顶级窗口使用我的主窗口使用相同的窗口过程,因此当我关闭任何顶级窗口时,窗口过程收到WM_CLOSE
消息并关闭整个应用程序
因此我有一个问题 - 如果我创建一个新的顶级窗口,是否需要注册一个新类并为其关联一个新的窗口过程?
答案 0 :(得分:3)
您的窗口过程可能是通过调用PostQuitMessage来响应WM_DESTROY。这导致了这个过程。您应该只在主窗口关闭时调用PostQuitMessage。只要使用处理WM_DESTROY消息的窗口句柄进行区分,就可以从共享窗口过程执行此操作。