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 | 將事件處理程式附加至Managed控制項。 |
BEGIN_DELEGATE_MAP
開始委派對應。
Syntax
BEGIN_DELEGATE_MAP( CLASS );
Parameters
CLASS
裝載 Managed 控制件的 類別。
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
針對每個實作的介面,有一或多個INTERFACE_PART巨集調用。 針對類別所使用的每個匯總,有一個INTERFACE_AGGREGATE巨集調用。
如需介面對應的詳細資訊,請參閱 技術附註 38。
Requirements
Header: afxwin.h
CommandHandler Delegate
向命令來源註冊回呼方法。
Syntax
delegate void CommandHandler( UINT^ cmdID );
Parameters
cmdID
命令 ID。
Remarks
這會向命令來源委派註冊回呼方法。 當您將委派加入命令來源物件時,回呼方法會成為來自指定之來源的命令的處理常式。
如需詳細資訊,請參閱 如何:將命令路由新增至 Windows Forms 控件。
如需使用 Windows Forms 的詳細資訊,請參閱 在 MFC 中使用 Windows Form 使用者控制件。
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
命令訊息識別碼。
Remarks
此委派會向使用者介面更新命令訊息註冊回呼方法。
CommandUIHandler is similar to CommandHandler except that this delegate is used with user interface object update commands. 使用者介面更新命令應該與訊息處理程式方法對應一對一。
如需使用 Windows Forms 的詳細資訊,請參閱 在 MFC 中使用 Windows Form 使用者控制件。
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
Managed 事件處理程式方法的第一個自變數,例如 Object^。
ARG1
Managed 事件處理程式方法的第二個自變數,例如 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 Forms 事件。
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
將事件處理程式附加至Managed控制項。
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. Managed 事件處理程式委派可讓原生類別處理 Managed 事件。
Example
下列程式代碼範例示範如何呼叫 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);
}
Requirements
Header: msclr\event.h
See also
如何:從原生 C++ 類別接收 Windows Forms 事件
如何:新增命令傳送至 Windows Forms 控制項
巨集和全域