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
对于实现的每个接口,有一个或多个 INTERFACE_PART 宏调用。 对于类使用的每个聚合,有一个 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. 用户界面更新命令应与消息处理程序方法一对一映射。
有关使用 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
托管事件处理程序方法的第二个参数,如 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 以将 OnClick 事件处理程序附加到 MFC 控件 MyControl。 有关此宏如何在 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 窗体控件添加命令传送
宏和全局函数