共用方式為


委派和介面對應巨集

MFC 支援這些宏來進行委派和介面對應:

名稱 描述
BEGIN_DELEGATE_MAP 開始委派對應。
BEGIN_INTERFACE_MAP 開始介面對應的定義。
CommandHandler 委派 向命令來源註冊回呼方法。
END_DELEGATE_MAP 結束委派對應。
END_INTERFACE_MAP 結束實作檔中的介面對應。
EVENT_DELEGATE_ENTRY 建立委派對應中的項目。
INTERFACE_PART 在BEGIN_INTERFACE_MAP宏與物件將支援的每個介面END_INTERFACE_MAP宏之間使用。
MAKE_DELEGATE 將事件處理常式附加至 Managed 控制項。

BEGIN_DELEGATE_MAP

開始委派對應。

語法

BEGIN_DELEGATE_MAP(  CLASS );

參數


裝載 Managed 控制項的 類別。

備註

這個宏會標記委派專案清單的開頭,此清單會撰寫委派對應。 如需如何使用這個宏的範例,請參閱 EVENT_DELEGATE_ENTRY

需求

標頭: msclr\event.h

BEGIN_INTERFACE_MAP

在實作檔案中使用時,開始介面對應的定義。

語法

BEGIN_INTERFACE_MAP( theClass, baseClass )

參數

theClass
在其中定義介面對應的類別

baseClass
類別,類別 的衍生來源

備註

針對每個實作的介面,有一或多個INTERFACE_PART宏調用。 針對類別所使用的每個匯總,有一個INTERFACE_AGGREGATE宏調用。

如需介面對應的詳細資訊,請參閱 技術附注 38

需求

標題: afxwin.h

CommandHandler 委派

向命令來源註冊回呼方法。

語法

delegate void CommandHandler(  UINT^ cmdID  );

參數

cmdID
命令 ID。

備註

這會向命令來源委派註冊回呼方法。 當您將委派加入命令來源物件時,回呼方法會成為來自指定之來源的命令的處理常式。

如需詳細資訊,請參閱 如何:將命令路由新增至 Windows Forms 控制項

如需使用 Windows Forms 的詳細資訊,請參閱 在 MFC 中使用 Windows Form 使用者控制項。

需求

標頭: afxwinforms.h (定義于元件 atlmfc\lib\mfcmifc80.dll)

CommandUIHandler

向使用者介面更新命令訊息註冊回呼方法。

語法

delegate void CommandUIHandler(  unsigned int cmdID, ICommandUI^ cmdUI);

參數

cmdID
命令 ID。

cmdUI
命令訊息識別碼。

備註

此委派會向使用者介面更新命令訊息註冊回呼方法。 CommandUIHandler CommandHandler 類似,不同之處在于此委派會與使用者介面物件更新命令搭配使用。 使用者介面更新命令應該與訊息處理常式方法對應一對一。

如需使用 Windows Forms 的詳細資訊,請參閱 在 MFC 中使用 Windows Form 使用者控制項。

需求

標頭: afxwinforms.h (定義于元件 atlmfc\lib\mfcmifc80.dll)

END_DELEGATE_MAP

結束委派對應。

語法

END_DELEGATE_MAP();

備註

這個宏會標記委派專案清單的結尾,此清單會撰寫委派對應。 如需如何使用這個宏的範例,請參閱 EVENT_DELEGATE_ENTRY

需求

標頭: msclr\event.h

END_INTERFACE_MAP

結束實作檔中的介面對應。

語法

END_INTERFACE_MAP( )

備註

如需介面對應的詳細資訊,請參閱 技術附注 38

需求

標題: afxwin.h

EVENT_DELEGATE_ENTRY

建立委派對應中的項目。

語法

EVENT_DELEGATE_ENTRY(MEMBER, ARG0, ARG1);

參數

成員
要附加到控制項的事件處理常式方法。

ARG0
Managed 事件處理常式方法的第一個引數,例如 Object^

ARG1
Managed 事件處理常式方法的第二個引數,例如 EventArgs^

備註

委派對應中的每個專案都會對應至MAKE_DELEGATE所建立的 Managed 事件處理常式委派。

範例

下列程式碼範例示範如何使用 EVENT_DELEGATE_ENTRY,在事件處理常式的委派對應 OnClick 中建立專案;另請參閱MAKE_DELEGATE中的程式碼範例。 如需詳細資訊,請參閱 如何:從原生 C++ 類別 接收 Windows Forms 事件。

BEGIN_DELEGATE_MAP(CMyView)
   EVENT_DELEGATE_ENTRY(OnClick, System::Object^, System::EventArgs^)
END_DELEGATE_MAP()

需求

標頭: msclr\event.h

INTERFACE_PART

在BEGIN_INTERFACE_MAP宏與物件將支援的每個介面END_INTERFACE_MAP宏之間使用。

語法

INTERFACE_PART( theClass, iid, localClass)

參數

theClass
包含介面對應的類別名稱。 Iid
要對應至內嵌類別的 IID。 localClass
本機類別的名稱。

備註

它可讓您將 IID 對應至 Class 和 localClass 指示類別的成員。

如需介面對應的詳細資訊,請參閱 技術附注 38

需求

標題: afxwin.h

MAKE_DELEGATE

將事件處理常式附加至 Managed 控制項。

語法

MAKE_DELEGATE( DELEGATE,  MEMBER) ;

參數

委託
Managed 事件處理常式委派的類型,例如 EventHandler

成員
要附加至 控制項的事件處理常式方法名稱。

備註

此宏會建立 DELEGATE 類型的 Managed 事件處理常式委派,以及名稱 MEMBER 的委派。 Managed 事件處理常式委派可讓原生類別處理 Managed 事件。

範例

下列程式碼範例示範如何呼叫 MAKE_DELEGATE ,將事件處理常式附加 OnClick 至 MFC 控制項 MyControl 。 如需此宏在 MFC 應用程式中運作方式的更廣泛說明,請參閱 如何:從原生 C++ 類別 接收 Windows Forms 事件。

// CMyView derives from CWinFormsView.
void CMyView::OnInitialUpdate()
{
   CWinFormsView::OnInitialUpdate();

   GetControl()->Click += MAKE_DELEGATE(System::EventHandler, OnClick);
}

需求

標頭: msclr\event.h

另請參閱

如何:從原生 C++ 類別接收 Windows Forms 事件
如何:新增命令傳送至 Windows Forms 控制項
宏和全域