| ページ一覧 | ブログ | twitter |  書式 | 書式(表) |

MyMemoWiki

「MFC イベントハンドリング」の版間の差分

提供: MyMemoWiki
ナビゲーションに移動 検索に移動
(ページの作成:「==MFC イベントハンドリング== [VC++][VisualStudio 2008]{{category VisualStudio操作}}{{category MFC}} {{amazon|4891000503}} ---- CView、CWndに定義さ…」)
 
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:04時点における版

MFC イベントハンドリング

[[VC++][VisualStudio 2008]]テンプレート:Category VisualStudio操作テンプレート:Category MFC


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

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

イベントハンドラの実装

ClassWizardとウィザードバーは、Visual C++ .NET 2002 で削除された。以下の手順でイベントハンドラを追加する。 0763 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