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

MyMemoWiki

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

提供: MyMemoWiki
ナビゲーションに移動 検索に移動
 
(同じ利用者による、間の1版が非表示)
1行目: 1行目:
==MFC イベントハンドリング==
+
==[[MFC イベントハンドリング]]==
[[VC++]][[VisualStudio 2008]]{{category VisualStudio操作}}{{category MFC}}
+
[[VC++]] | [[VisualStudio 2008]] | [[Category:VisualStudio操作}}{{category MFC]]
 
{{amazon|4891000503}}
 
{{amazon|4891000503}}
  
9行目: 9行目:
  
 
===イベントハンドラの実装===
 
===イベントハンドラの実装===
ClassWizardとウィザードバーは、Visual C++ .NET 2002 で削除された。以下の手順でイベントハンドラを追加する。
+
ClassWizardとウィザードバーは、Visual C++ [[.NET]] 2002 で削除された。以下の手順でイベントハンドラを追加する。
 
[[File:0763_mfc02_01.jpg]]
 
[[File:0763_mfc02_01.jpg]]
 
*以下のコード生成を自動化
 
*以下のコード生成を自動化
  
 
====ビュークラスのメンバー関数====
 
====ビュークラスのメンバー関数====
CMFC01View.cpp
+
C[[MFC]]01View.cpp
  void CMFC01View::OnLButtonDblClk(UINT nFlags, CPoint point)
+
  void C[[MFC]]01View::OnLButtonDblClk(UINT nFlags, CPoint point)
 
  {
 
  {
 
     // TODO: ここにメッセージ ハンドラ コードを追加するか、既定の処理を呼   
 
     // TODO: ここにメッセージ ハンドラ コードを追加するか、既定の処理を呼   
22行目: 22行目:
  
 
====プロトタイプ宣言====
 
====プロトタイプ宣言====
CMFC01View.h
+
C[[MFC]]01View.h
 
  afx_msg void OnLButtonDblClk(UINT nFlags, CPoint point);
 
  afx_msg void OnLButtonDblClk(UINT nFlags, CPoint point);
 
*afx_msg はマーカーであり、何もしない
 
*afx_msg はマーカーであり、何もしない
28行目: 28行目:
 
====メッセージマップマクロ====
 
====メッセージマップマクロ====
 
フレームワークと関数のバインド
 
フレームワークと関数のバインド
CMFC01View.cpp
+
C[[MFC]]01View.cpp
  BEGIN_MESSAGE_MAP(CMFC01View, CView)
+
  BEGIN_MESSAGE_MAP(C[[MFC]]01View, CView)
 
  ON_WM_LBUTTONDBLCLK()
 
  ON_WM_LBUTTONDBLCLK()
 
  END_MESSAGE_MAP()
 
  END_MESSAGE_MAP()
  
 
また、ヘッダーファイルに以下のステートメントが必要
 
また、ヘッダーファイルに以下のステートメントが必要
CMFC01View.h
+
C[[MFC]]01View.h
  DECLARE_MESSAGE_MAP()
+
  DECLA[[R]]E_MESSAGE_MAP()
  
  
{{ref MFC01View.lzh}}
+
{{ref [[MFC]]01View.lzh}}
 
----
 
----
{{amazon|B0011410RG}}
+
{{amazon|B0011410[[R]]G}}

2020年2月16日 (日) 04:29時点における最新版

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}}