• ベストアンサー

MFCのView終了時の終了確認

環境:WindowsXP + VisualStudio2010 + MFC MFCのViewの終了処理に関して質問があります。 Viewの右上の×印をクリックした際に終了確認を表示して ユーザーが終了を拒否した場合、Viewの終了を無効にしたい と考えています。 MFCでこのような制御を行うには、どのようなイベントで どのような処理をすれば良いのでしょうか? ご存知の方がいたら教えて下さい。 どうぞ宜しくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • kabe64
  • ベストアンサー率72% (13/18)
回答No.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);   } }

ken2r
質問者

お礼

教えていただいた方法で解決できました。 有難うございました。