2

私はこのトピックに関する多くの記事を読みました、それらのいくつかはスタックオーバーフローについてここにありました、しかしそれらのどれも私の質問をしませんでした。具体的にしようと思います。

(ウィンドウクラス「a」の)メインウィンドウを使用してアプリケーション(ネイティブWinAPI)を作成する必要があります。ユーザーがそこにあるボタンをクリックすると、「b」クラスのウィンドウがポップアップします。モーダルかどうかはわかりませんが、今は気にしません。

2つのウィンドウクラスと2つのウィンドウプロシージャを使用してアプリケーションを作成してみました。しかし、問題は、2番目のウィンドウを閉じると、アプリケーション全体がシャットダウンすることです。

ありがとうございました。

4

1 に答える 1

2

推測では、2 番目のウィンドウのウィンドウ プロシージャはメイン ウィンドウのウィンドウ プロシージャに基づいているため、 を受け取るとWM_DESTROY、 が呼び出されPostQuitMessageます。これは、最上位ウィンドウでは正常です。ユーザーは、最上位ウィンドウを破棄することがアプリケーションの終了を意味することを期待しているためです。ただし、子ウィンドウ (モーダルまたはその他) の場合はそうではないPostQuitMessageため、子は (通常は)そのWM_DESTROYハンドラーを呼び出すべきではありません。

于 2010-06-27T16:36:25.253 に答える