委派和介面對應巨集
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 控制項
巨集和全域