11

MFCアプリケーションがそれ自体をきれいに閉じるための適切な方法は何ですか?

4

5 に答える 5

14
AfxGetMainWnd()->PostMessage(WM_CLOSE);
于 2008-08-18T12:04:20.240 に答える
11

MFC アプリケーションをプログラムで終了する

 void ExitMFCApp()
   {
        // same as double-clicking on main window close box
        ASSERT(AfxGetMainWnd() != NULL);
        AfxGetMainWnd()->SendMessage(WM_CLOSE);
   }

http://support.microsoft.com/kb/117320

于 2012-01-07T10:23:40.803 に答える
4

@Mike の回答をサポートするために、このメソッドを使用する理由は、正しいシャットダウン シーケンスをトリガーするためです。ドキュメントが終了前に保存を要求したり、終了をキャンセルしたりする可能性があるため、MDI/SDI アプリケーションでは特に重要です。

@Matt Noguchi、あなたの方法はこのシーケンスを回避します(これは望ましい効果かもしれませんが、通常の分解を短絡している場合はおそらく問題が発生します.

于 2008-08-18T14:11:43.260 に答える
4
PostQuitMessage( [exit code] );
于 2008-08-18T16:08:33.167 に答える
1

ダイアログベースのアプリケーションの場合は、EndDialog() 関数を呼び出して実行できます。

SDI/MDI ベースのアプリケーションの場合は、DestroyWindow を呼び出すことができます。ただし、その前に、自分でクリーンアップを行う必要があります (ドキュメントを閉じる、メモリとリソースの割り当てを解除する、作成された追加のウィンドウを破棄するなど)。

于 2008-09-18T10:23:26.777 に答える