アプリ版:「スタンプのみでお礼する」機能のリリースについて

いつもお世話になります。

VC++6.0MFCダイアログベースでデスクトップアプリ
を作成しているものです。

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

A 回答 (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 も来ないかもしれません。
    • good
    • 0

WM_QUIT だったと思います。


記憶なのでちょっと自信無し(^^;
実験して見て下さい。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!