MFC では、デリゲート マップとインターフェイス マップに対して次のマクロがサポートされています。
| Name | Description |
|---|---|
| BEGIN_DELEGATE_MAP | デリゲート マップを開始します。 |
| BEGIN_INTERFACE_MAP | インターフェイスマップの定義を開始します。 |
| CommandHandler Delegate | コールバック メソッドをコマンド ソースに登録します。 |
| END_DELEGATE_MAP | デリゲート マップを終了します。 |
| END_INTERFACE_MAP | 実装ファイル内のインターフェイス マップを終了します。 |
| EVENT_DELEGATE_ENTRY | デリゲート マップにエントリを作成します。 |
| INTERFACE_PART | オブジェクトがサポートするインターフェイスごとに、BEGIN_INTERFACE_MAP マクロと END_INTERFACE_MAP マクロの間で使用されます。 |
| MAKE_DELEGATE | マネージド コントロールにイベント ハンドラーをアタッチします。 |
BEGIN_DELEGATE_MAP
デリゲート マップを開始します。
Syntax
BEGIN_DELEGATE_MAP( CLASS );
Parameters
CLASS
マネージド コントロールがホストされているクラス。
Remarks
このマクロは、デリゲート マップを構成するデリゲート エントリの一覧の先頭をマークします。 For an example of how this macro is used, see EVENT_DELEGATE_ENTRY.
Requirements
Header: msclr\event.h
BEGIN_INTERFACE_MAP
実装ファイルで使用する場合に、インターフェイスマップの定義を開始します。
Syntax
BEGIN_INTERFACE_MAP( theClass, baseClass )
Parameters
theClass
定義するインターフェイス マップが含まれるクラス
baseClass
The class from which theClass derives from.
Remarks
実装されるインターフェイスごとに、1 つ以上のINTERFACE_PARTマクロ呼び出しがあります。 このクラスで使用する集約ごとに 1 つの INTERFACE_AGGREGATE マクロ呼び出しを記述します。
インターフェイス マップの詳細については、 テクニカル ノート 38 を参照してください。
Requirements
Header: afxwin.h
CommandHandler Delegate
コールバック メソッドをコマンド ソースに登録します。
Syntax
delegate void CommandHandler( UINT^ cmdID );
Parameters
cmdID
コマンド ID。
Remarks
このデリゲートは、コールバック メソッドをコマンド ソースに登録します。 コマンド ソース オブジェクトにデリゲートを追加すると、コールバック メソッドは、指定されたソースからのコマンドのハンドラーになります。
詳細については、「方法: Windows フォーム コントロールにコマンド ルーティングを追加するを参照してください。
Windows フォームの使用方法の詳細については、「 MFC での Windows フォーム ユーザー コントロールの使用」を参照してください。
Requirements
Header: afxwinforms.h (defined in assembly atlmfc\lib\mfcmifc80.dll)
CommandUIHandler
コールバック メソッドをユーザー インターフェイス更新コマンド メッセージに登録します。
Syntax
delegate void CommandUIHandler( unsigned int cmdID, ICommandUI^ cmdUI);
Parameters
cmdID
コマンド ID。
cmdUI
コマンド メッセージ ID。
Remarks
このデリゲートは、コールバック メソッドをユーザー インターフェイス更新コマンド メッセージに登録します。
CommandUIHandler is similar to CommandHandler except that this delegate is used with user interface object update commands. ユーザー インターフェイスの更新コマンドは、メッセージ ハンドラー メソッドを使用して 1 対 1 でマップする必要があります。
Windows フォームの使用方法の詳細については、「 MFC での Windows フォーム ユーザー コントロールの使用」を参照してください。
Requirements
Header: afxwinforms.h (defined in assembly atlmfc\lib\mfcmifc80.dll)
END_DELEGATE_MAP
デリゲート マップを終了します。
Syntax
END_DELEGATE_MAP();
Remarks
このマクロは、デリゲート マップを構成するデリゲート エントリの一覧の末尾をマークします。 For an example of how this macro is used, see EVENT_DELEGATE_ENTRY.
Requirements
Header: msclr\event.h
END_INTERFACE_MAP
実装ファイル内のインターフェイス マップを終了します。
Syntax
END_INTERFACE_MAP( )
Remarks
インターフェイス マップの詳細については、「 テクニカル ノート 38を参照してください。
Requirements
Header: afxwin.h
EVENT_DELEGATE_ENTRY
デリゲート マップにエントリを作成します。
Syntax
EVENT_DELEGATE_ENTRY(MEMBER, ARG0, ARG1);
Parameters
MEMBER
コントロールにアタッチするイベント ハンドラー メソッド。
ARG0
マネージド イベント ハンドラー メソッドの最初の引数 ( Object^など)。
ARG1
マネージド イベント ハンドラー メソッドの 2 番目の引数 ( EventArgs^など)。
Remarks
Each entry in the delegate map corresponds to a managed event handler delegate created by MAKE_DELEGATE.
Example
次のコード例は、EVENT_DELEGATE_ENTRYを使用して、 OnClick イベント ハンドラーのデリゲート マップにエントリを作成する方法を示しています。また、MAKE_DELEGATEのコード例も参照してください。 詳細については、「方法: ネイティブ C++ クラスからWindows フォームイベントをシンクする」を参照してください。
BEGIN_DELEGATE_MAP(CMyView)
EVENT_DELEGATE_ENTRY(OnClick, System::Object^, System::EventArgs^)
END_DELEGATE_MAP()
Requirements
Header: msclr\event.h
INTERFACE_PART
オブジェクトがサポートするインターフェイスごとに、BEGIN_INTERFACE_MAP マクロと END_INTERFACE_MAP マクロの間で使用されます。
Syntax
INTERFACE_PART( theClass, iid, localClass)
Parameters
theClass
インターフェイス マップを持つクラスの名前。
iid
埋め込みクラスにマップされる IID。
localClass
ローカル クラスの名前。
Remarks
It allows you to map an IID to a member of the class indicated by theClass and localClass.
インターフェイス マップの詳細については、 テクニカル ノート 38 を参照してください。
Requirements
Header: afxwin.h
MAKE_DELEGATE
マネージド コントロールにイベント ハンドラーをアタッチします。
Syntax
MAKE_DELEGATE( DELEGATE, MEMBER) ;
Parameters
DELEGATE
The type of the managed event handler delegate, such as EventHandler.
MEMBER
コントロールにアタッチするイベント ハンドラー メソッドの名前。
Remarks
This macro creates a managed event handler delegate of type DELEGATE and of the name MEMBER. マネージド イベント ハンドラー デリゲートを使用すると、ネイティブ クラスでマネージド イベントを処理できます。
Example
次のコード例は、MAKE_DELEGATEを呼び出して、OnClickにアタッチする方法を示しています。 MFC アプリケーションでのこのマクロの動作の詳細については、「方法: ネイティブ C++ クラスからWindows フォームイベントをシンクする方法を参照してください。
// CMyView derives from CWinFormsView.
void CMyView::OnInitialUpdate()
{
CWinFormsView::OnInitialUpdate();
GetControl()->Click += MAKE_DELEGATE(System::EventHandler, OnClick);
}
Requirements
Header: msclr\event.h
See also
方法: ネイティブ C++ クラスから Windows フォーム イベントをシンクする
方法: Windows フォーム コントロールにコマンド ルーティングを追加する
マクロとグローバル