委派和介面對應巨集
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 控制項
宏和全域
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應