0

アプリケーションで、(メイン ウィンドウの他に) いくつかのトップ レベル ウィンドウを作成する問題に遭遇しました。

問題は、トップ レベル ウィンドウのいずれかを閉じると、メイン ウィンドウも閉じてしまうことです。何が起こっているのかを理解するのに数日かかりましたが、理解できたと思います。他のトップ レベル ウィンドウはメイン ウィンドウと同じウィンドウ プロシージャを使用しているように見えます。その結果、トップ レベル ウィンドウのいずれかを閉じると、ウィンドウ プロシージャはWM_CLOSEメッセージを受け取り、アプリケーション全体をシャットダウンします。

したがって、質問があります。新しいトップ レベル ウィンドウを作成する場合、新しいクラスを登録し、新しいウィンドウ プロシージャを関連付ける必要がありますか?

4

1 に答える 1

3

ウィンドウ プロシージャは、おそらく PostQuitMessage を呼び出して WM_DESTROY に応答しています。これにより、プロセスが停止します。メイン ウィンドウが閉じるときだけ PostQuitMessage を呼び出す必要があります。WM_DESTROY メッセージを処理しているウィンドウ ハンドルを使用して区別する限り、共有ウィンドウ プロシージャからこれを行うことができます。

于 2013-08-10T20:52:53.970 に答える