VCの関数にダイアログが閉じる間際に呼び出される関数があった記憶があります。
それを活用し、ユーザがプログラムを閉じるコマンドを実行した時に、
終了の確認メッセージを出したいと思っているのですが、
方法を忘れてしまいました。
お手数をお掛けしますが、どなたかご存じの方がおりましたらお答え頂きたく
よろしくお願いします。
WM_CLOSE → CWnd::OnClose() でしょうか。
いちいちMSDNを調べるまでもなく、class wizardのメッセージマップを開いてメッセージ
のリストをひとつひとつ選択してみると、下に簡単な説明が出てくるので「これだっ!!」
と思うメッセージが見つかったら迷わず関数を追加してしまいましょう。
CWinApp::ExitInstance かもしれませんし、
CWnd::OnDestroy、CWnd::OnNcDestroy かもしれません。
いろいろありますねぇ。
一般的には CWnd::OnClose か CWinApp::ExitInstance を使いますケド。
tibさん!レスありがとうございます。
教えていただいたヒントを元にテストを行ってみました。
[作成するアプリケーションの種類]がダイアログベースのときは、
終了する前にWM_CLOSEの処理に入ったのですが、
[作成するアプリケーションの種類]がMDIで[基本クラス]がCFormView
の時は、WM_CLOSEの実行がされませんでした。
現在、作成しているプログラムは
[作成するアプリケーションの種類]:MDI
[基本クラス]:CFormView
なので、今回WM_CLOSEで問題を解決することが難しいのかもしれません。
教えていただきありがとうございました。
おかげさまで、WM_CLOSEの問題でずっとつまづいている状況から抜け出せました。
とりあえずこれからは、(少なくとも)
システムメニューの×ボタンを押したときに、ダイアログ終了の
確認メッセージを出せるようにしないといけないので、
その方法について調べてみます。
tibさん、シャノンさんできました!!ありがとうございました。
詳細は、この次に書きこみます。
クラスウィザードに出てくる
C×××ViewのクラスにOnClose関数を作成していました。
この場合、OnClose関数の実行すらできませんでしたが、
MainFrmクラスにOnClose関数と処理を追加したところ
ダイアログが消滅する前に、処理を実行することができました。
親切に教えていただいたお陰で問題を解決することができました。
まだ、VCのクラスの意味がわかっていないので今後、それを良く考えながら
テストしていくように注意します。レスをしていただいたtibさん、シャノンさん
本当にありがとうございました。