
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 も来ないかもしれません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
メッセージボックスの選択ボタ...
-
Excel VBA で外部アプリケーシ...
-
メッセージハンドラ
-
WINDOWを最前面に出したい!!
-
vbaから他のアプリを終了
-
「アイテムは収集されました」...
-
グラフの交点の求め方(Excel)
-
エクセルで作った新しいウイン...
-
コントロールの書式設定で、“コ...
-
[VB.net] DataGridViewの列ヘッ...
-
ActiveXコントロールを.NETにイ...
-
以下のプログラムは重心を求め...
-
勝手にウィンドウが開いて止ま...
-
コンボボックス内の文字サイズ変更
-
EXCELVBA リストボックスで選択...
-
DateTimePickerでに年月までし...
-
VB.NET2005 TextBox 高さ(Heig...
-
Microsoft Visual C++ 6.0でダ...
-
MFCタブコントロールのグラデー...
-
エクセルで回転する座標の出し方
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
メッセージボックスの選択ボタ...
-
vbaから他のアプリを終了
-
msgboxの表示位置
-
VBAでコントロールのハンドルを...
-
他のウィンドウのボタンを自動...
-
デスクトップ上のアイコンの位...
-
SendMessage で ESC など
-
SetWindowText関数について
-
メッセージハンドラ
-
Excel VBA で外部アプリケーシ...
-
点滅で知らせる方法
-
windowsメールスロットについて...
-
マウスホイールをフックしたい
-
DLL VB Wheel ホイール
-
WM_NCLBUTTONUPについて
-
VB.netでSendMessageを使用して...
-
チェックボックスのキーダウン...
-
有効でないウインドウハンドル...
-
コールバック関数とは…(C言語)
-
キーボード・フックのアプリを...
おすすめ情報