トップ 一覧 ping 検索 ヘルプ RSS ログイン

MFC イベントハンドリングの変更点

  • 追加された行はこのように表示されます。
  • 削除された行はこのように表示されます。
!!!MFC イベントハンドリング
[VC++]{{category VisualStudio操作}}
[VC++][VisualStudio 2008]{{category VisualStudio操作}}{{category MFC}}
{{amazon 4891000503}}
VisualStudio 2008

----
CView、CWndに定義されている「On」で始まる関数「OnKeyDown」などフレームワークから呼び出されるのイベントハンドラは、仮想関数ではない。

フレームワークと関数を結び付けるには、「メッセージマップ」が必要。

!!イベントハンドラの実装
ClassWizardとウィザードバーは、Visual C++ .NET 2002 で削除された。以下の手順でイベントハンドラを追加する。
{{ref_image mfc02_01.jpg}}
*以下のコード生成を自動化

::ビュークラスのメンバー関数
!ビュークラスのメンバー関数
CMFC01View.cpp
 void CMFC01View::OnLButtonDblClk(UINT nFlags, CPoint point)
 {
     // TODO: ここにメッセージ ハンドラ コードを追加するか、既定の処理を呼   
     CView::OnLButtonDblClk(nFlags, point);
 }

::プロトタイプ宣言
!プロトタイプ宣言
CMFC01View.h
 afx_msg void OnLButtonDblClk(UINT nFlags, CPoint point);
*afx_msg はマーカーであり、何もしない

::メッセージマップマクロ
!メッセージマップマクロ
フレームワークと関数のバインド
CMFC01View.cpp
 BEGIN_MESSAGE_MAP(CMFC01View, CView)
 	ON_WM_LBUTTONDBLCLK()
 END_MESSAGE_MAP()

また、ヘッダーファイルに以下のステートメントが必要
CMFC01View.h
 DECLARE_MESSAGE_MAP()


{{ref MFC01View.lzh}}
----
{{amazon B0011410RG}}