「MFC イベントハンドリング」の版間の差分
ナビゲーションに移動
検索に移動
1行目: | 1行目: | ||
− | ==MFC イベントハンドリング== | + | ==[[MFC イベントハンドリング]]== |
− | [[VC++]] | [[VisualStudio 2008]] | | + | [[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]] | ||
*以下のコード生成を自動化 | *以下のコード生成を自動化 | ||
====ビュークラスのメンバー関数==== | ====ビュークラスのメンバー関数==== | ||
− | + | C[[MFC]]01View.cpp | |
− | void | + | void C[[MFC]]01View::OnLButtonDblClk(UINT nFlags, CPoint point) |
{ | { | ||
// TODO: ここにメッセージ ハンドラ コードを追加するか、既定の処理を呼 | // TODO: ここにメッセージ ハンドラ コードを追加するか、既定の処理を呼 | ||
22行目: | 22行目: | ||
====プロトタイプ宣言==== | ====プロトタイプ宣言==== | ||
− | + | 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行目: | ||
====メッセージマップマクロ==== | ====メッセージマップマクロ==== | ||
フレームワークと関数のバインド | フレームワークと関数のバインド | ||
− | + | C[[MFC]]01View.cpp | |
− | BEGIN_MESSAGE_MAP( | + | BEGIN_MESSAGE_MAP(C[[MFC]]01View, CView) |
ON_WM_LBUTTONDBLCLK() | ON_WM_LBUTTONDBLCLK() | ||
END_MESSAGE_MAP() | END_MESSAGE_MAP() | ||
また、ヘッダーファイルに以下のステートメントが必要 | また、ヘッダーファイルに以下のステートメントが必要 | ||
− | + | C[[MFC]]01View.h | |
− | + | DECLA[[R]]E_MESSAGE_MAP() | |
− | {{ref | + | {{ref [[MFC]]01View.lzh}} |
---- | ---- | ||
− | {{amazon| | + | {{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 で削除された。以下の手順でイベントハンドラを追加する。
- 以下のコード生成を自動化
ビュークラスのメンバー関数
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}}
https://images-na.ssl-images-amazon.com/images/P/B0011410RG.09.MZZZZZZZ.jpg RG/typea09-22 link
© 2006 矢木浩人