プログラム終了時の処理 – プログラミング – Home

プログラム終了時の処理
 
通知
すべてクリア

[解決済] プログラム終了時の処理


tarou
 tarou
(@tarou)
ゲスト
結合: 21年前
投稿: 1
Topic starter  

VCの関数にダイアログが閉じる間際に呼び出される関数があった記憶があります。
それを活用し、ユーザがプログラムを閉じるコマンドを実行した時に、
終了の確認メッセージを出したいと思っているのですが、
方法を忘れてしまいました。
お手数をお掛けしますが、どなたかご存じの方がおりましたらお答え頂きたく
よろしくお願いします。


引用未解決
トピックタグ
tib
 tib
(@tib)
ゲスト
結合: 23年前
投稿: 468
 

WM_CLOSE → CWnd::OnClose() でしょうか。

いちいちMSDNを調べるまでもなく、class wizardのメッセージマップを開いてメッセージ
のリストをひとつひとつ選択してみると、下に簡単な説明が出てくるので「これだっ!!」
と思うメッセージが見つかったら迷わず関数を追加してしまいましょう。


返信引用
aetos
(@aetos)
Noble Member
結合: 5年前
投稿: 1480
 

CWinApp::ExitInstance かもしれませんし、
CWnd::OnDestroy、CWnd::OnNcDestroy かもしれません。
いろいろありますねぇ。

一般的には CWnd::OnClose か CWinApp::ExitInstance を使いますケド。


返信引用
tarou
 tarou
(@tarou)
ゲスト
結合: 21年前
投稿: 8
 

tibさん!レスありがとうございます。
教えていただいたヒントを元にテストを行ってみました。
[作成するアプリケーションの種類]がダイアログベースのときは、
終了する前にWM_CLOSEの処理に入ったのですが、
[作成するアプリケーションの種類]がMDIで[基本クラス]がCFormView
の時は、WM_CLOSEの実行がされませんでした。
現在、作成しているプログラムは
[作成するアプリケーションの種類]:MDI
[基本クラス]:CFormView
なので、今回WM_CLOSEで問題を解決することが難しいのかもしれません。
教えていただきありがとうございました。
おかげさまで、WM_CLOSEの問題でずっとつまづいている状況から抜け出せました。

とりあえずこれからは、(少なくとも)
システムメニューの×ボタンを押したときに、ダイアログ終了の
確認メッセージを出せるようにしないといけないので、
その方法について調べてみます。


返信引用
tarou
 tarou
(@tarou)
ゲスト
結合: 21年前
投稿: 8
 

tibさん、シャノンさんできました!!ありがとうございました。
詳細は、この次に書きこみます。


返信引用
tarou
 tarou
(@tarou)
ゲスト
結合: 21年前
投稿: 8
 

クラスウィザードに出てくる
C×××ViewのクラスにOnClose関数を作成していました。
この場合、OnClose関数の実行すらできませんでしたが、
MainFrmクラスにOnClose関数と処理を追加したところ
ダイアログが消滅する前に、処理を実行することができました。
親切に教えていただいたお陰で問題を解決することができました。
まだ、VCのクラスの意味がわかっていないので今後、それを良く考えながら
テストしていくように注意します。レスをしていただいたtibさん、シャノンさん
本当にありがとうございました。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました