【发布时间】:2013-08-10 20:26:15
【问题描述】:
我在创建多个顶级窗口(除了主窗口)的应用程序中遇到了问题:
问题是,如果我关闭任何顶级窗口,我的主窗口也会关闭。我花了几天时间才明白发生了什么,我想我明白了。看起来其他顶级窗口使用与我的主窗口相同的窗口过程,因此当我关闭任何顶级窗口时,窗口过程会收到 WM_CLOSE 消息并关闭整个应用程序。
因此我有一个问题——如果我创建一个新的顶级窗口,我是否需要注册一个新类并为其关联一个新的窗口过程?
【问题讨论】:
-
不需要单独的过程。您可以采取的一种有效的故障排除措施是运行 Spy++ 工具并检查您的其他窗口究竟收到了哪些消息,这些消息会使其他窗口在您不期望的时候关闭。
-
@RomanR。谢谢,我马上试试。但是有一个问题 - 如果我没有为我的新窗口指定一个新的窗口过程,是否会使用主窗口的过程?
-
CreateWindow将类名作为参数,并且 class/WNDCLASS附加了一个lpfnWndProc- 这是 window proc 的来源。它是否已被另一个窗口使用并不重要。
标签: winapi