我听说要在我的 C++ 应用程序中创建多个窗口,我需要做的就是创建尽可能多HWND
的 s,并且对于每个窗口,使用CreateWindowEx()
,以及适当的窗口类等。
我已经做到了,所以这不是问题。
现在,通常情况下,我会为我的应用程序制作这种消息循环:
MSG msg;
while(1)
{
while(PeekMessage(&msg, hWnd, 0, 0, PM_REMOVE))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
if(msg.message == WM_QUIT)
break;
}
(这应该是正确的,是吗?)
但是现在我有 3 个窗口,我的消息循环看起来像这样:
MSG msg;
while(1)
{
while(PeekMessage(&msg, hWnd, 0, 0, PM_REMOVE) || PeekMessage(&msg, hConWnd, 0, 0, PM_REMOVE) || PeekMessage(&msg, hStatWnd, 0, 0, PM_REMOVE))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
if(msg.message == WM_QUIT)
break;
}
所以它会检查所有窗口的消息,对吧?
现在我的问题是,这是为多个窗口获取消息的正确方法吗?
另外,我听说WndProc
对不同的窗口使用不同的 s 不好,这是真的吗?如果是,为什么?(以及如何只使用一个,如果我想要每个窗口的行为有点不同?)
最后,我如何退出我的应用程序,以便如果其中一个窗口关闭(任何窗口),所有窗口都将适当地关闭?