私の C++ アプリケーションで複数のウィンドウを作成するには、 を必要な数だけ作成し、それぞれに対して、適切なウィンドウ クラスなどと共に をHWND
使用するだけでよいと
聞いたことがあります。 、だからそれは問題ではありません。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
、これは本当ですか? もしそうなら、なぜですか? (そして、ウィンドウごとに少し異なる動作が必要な場合は、1 つだけを使用する方法は?)
最後に、ウィンドウの 1 つ (任意のウィンドウ) が閉じられた場合にすべてのウィンドウが適切に閉じられるように、アプリケーションを終了するにはどうすればよいでしょうか?