第 号
|
Last Updated 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() を呼び出せばアプリケーション
は終了する.
2004/03/02
参照
PostQuitMessage
InitInstance()で終了させる