Last Updated 2004/03/02
Programming Tips Visual C++ MFC ウィンドウ  索 引 
アプリケーション終了方法
2004/03/02

任意の時点でアプリケーションを終了するには,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() を呼び出せばアプリケーションは終了する.


参照
PostQuitMessage
InitInstance()で終了させる
前後のTips
アプリケーション終了方法

DSS ProgrammingTipsCGI Ver2.02