「MFC イベントハンドリング」の版間の差分
ナビゲーションに移動
検索に移動
1行目: | 1行目: | ||
==MFC イベントハンドリング== | ==MFC イベントハンドリング== | ||
− | [[VC++][VisualStudio 2008]]{{category VisualStudio操作}}{{category MFC}} | + | [[VC++]][[VisualStudio 2008]]{{category VisualStudio操作}}{{category MFC}} |
{{amazon|4891000503}} | {{amazon|4891000503}} | ||
2020年2月15日 (土) 08:21時点における版
MFC イベントハンドリング
VC++VisualStudio 2008テンプレート:Category VisualStudio操作テンプレート:Category MFC
CView、CWndに定義されている「On」で始まる関数「OnKeyDown」などフレームワークから呼び出されるのイベントハンドラは、仮想関数ではない。
フレームワークと関数を結び付けるには、「メッセージマップ」が必要。
イベントハンドラの実装
ClassWizardとウィザードバーは、Visual C++ .NET 2002 で削除された。以下の手順でイベントハンドラを追加する。
- 以下のコード生成を自動化
ビュークラスのメンバー関数
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()
© 2006 矢木浩人