次の方法で共有


デリゲートとインターフェイス マップ マクロ

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を呼び出して、 イベント ハンドラーを MFC コントロール 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 フォーム コントロールにコマンド ルーティングを追加する
マクロとグローバル