Last Updated 2004/03/02
MFC ウィンドウ

アプリケーション終了方法


任意の時点でアプリケーションを終了するには,WM_CLOSE を送信するか,
DestroyWindow() を呼び出す.
(WM_CLOSE を送信するとデフォルトの処理では DestroyWindow() を呼び出す)

  AfxGetMainWnd()->DestroyWindow();

  AfxGetMainWnd()->PostMessage(WM_CLOSE);


メインフレームを破棄する方法もある.
  GetParent()->DestroyWindow();
  または
  GetParentFrame()->DestroyWindow();


DestroyWindow() は WM_DESTROY と WM_NCDESTROY を送信する.


PostQuitMessage() はいきなり呼び出してはならない.
通常 PostQuitMessage() は WM_DESTROY の応答に使用する.
PostQuitMessage() は,メッセージループを抜ける.(WM_QUIT メッセージ
を送信する)
メッセージループから抜けるとアプリケーションは終了する.
メッセージループから抜ける前にはウィンドウは破棄されていなければなら
ない.
SDK で作成した場合,通常以下の様になる.

    case WM_DESTROY:
        PostQuitMessage(0);
        break;


以上のことから WM_CLOSE を送信すれば,DestroyWindow() が呼ばれ,
DestoryWindow() は WM_DESTROY を送信する.
WM_DESTROY の応答で PostQuitMessage() を呼び出せばアプリケーション
は終了する.
2004/03/02

参照
PostQuitMessage
InitInstance()で終了させる


MFC ウィンドウ