- ベストアンサー
MFCのView終了時の終了確認
環境:WindowsXP + VisualStudio2010 + MFC MFCのViewの終了処理に関して質問があります。 Viewの右上の×印をクリックした際に終了確認を表示して ユーザーが終了を拒否した場合、Viewの終了を無効にしたい と考えています。 MFCでこのような制御を行うには、どのようなイベントで どのような処理をすれば良いのでしょうか? ご存知の方がいたら教えて下さい。 どうぞ宜しくお願い致します。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
Viewと言われているのかわからないので違うかもしれませんが。 ×印はシステムコマンドに該当する機能ですから、WM_SYSCOMMANDを使えば可能ですよ。 ×印がクリックされるとnIDにSC_CLOSEが送られてきますから、メッセージボックスを出してNOならデフォルト処理を省略するようにすればいいです。 但し処理する場所はCMainFrameの方です。 WM_SYSCOMMANDのハンドラ作って、以下の感じで制御できます。 void CMainFrame::OnSysCommand(UINT nID, LPARAM lParam) { if((nID != SC_CLOSE) || ((nID == SC_CLOSE) && (MessageBox(_T("終了しますか?"), _T("終了"), MB_YESNO) == IDYES))) { CFrameWndEx::OnSysCommand(nID, lParam); } }
お礼
教えていただいた方法で解決できました。 有難うございました。