• ベストアンサー

windows終了時のメッセージについて

いつもお世話になります。 VC++6.0MFCダイアログベースでデスクトップアプリ を作成しているものです。 アプリ終了でINIファイルにウィンドウ位置を記憶させ 次回起動時に終了位置に表示させているのですが、 アプリが立ち上がったまま、スタートメニューからウィンドウズ自体を 終了させた時、アプリにはどのようなメッセージが飛んできているのか どなたか教えていただけないでしょうか? よろしくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

ユーザが Windowsの終了を選択したり、ExitWindows関数で終了された直後に、トップレベルウィンドウ(この場合ダイアログ)にWM_QUERYENDSESSION メッセージが来ます。 ダイアログでは CWnd::OnQueryEndSession ハンドラを定義してこのメッセージを処理します。 ハンドラには、Windowsを終了してもよければ TRUE を、終了を阻止する場合は FALSE を返すようにコードを書きます。 ダイアログがこのメッセージをハンドルしたら、次に WM_ENDSESSION メッセージが来ます。 ダイアログでは CWnd::OnEndSession ハンドラを定義してこのメッセージを処理します。 ハンドラの BOOL 引数 bEnding が TRUE なら、Windows は終了します。 FALSE なら、終了処理は中断されました。 INIファイルにデータを記録するなら、OnEndSession に TRUE がセットされた時に書き込みを行い、完了したらハンドラから return します。 この時、ウィンドウに WM_DESTROY が来ないかもしれません。 また、メッセージキューに WM_QUIT も来ないかもしれません。

その他の回答 (1)

  • JitF
  • ベストアンサー率42% (16/38)
回答No.1

WM_QUIT だったと思います。 記憶なのでちょっと自信無し(^^; 実験して見て下さい。

関連するQ&A