MFC ActiveX 控件:事件

ActiveX 控件使用事件来通知容器控件发生的情况。 常见的事件示例包括单击控件、使用键盘输入的数据以及控件状态的更改。 发生这些作时,控件会触发事件来提醒容器。

事件也称为消息。

MFC 支持两种类型的事件:内建和自定义。 库存事件是 COleControl 类自动处理的那些事件。 有关股票事件的完整列表,请参阅 MFC ActiveX 控件:添加股票事件一文。 自定义事件允许控件在发生特定于该控件的作时通知容器。 一些示例包括控件内部状态的变化或接收到特定窗口消息。

要使控件能够正确触发事件,控件类必须将控件的每个事件映射到在发生相关事件时应调用的成员函数。 此映射机制(称为事件映射)集中了有关事件的信息,并允许Visual Studio轻松访问和操作控件事件。 此事件映射由以下宏声明,该宏位于控制类声明的头文件 (.H) 中:

DECLARE_EVENT_MAP()

声明事件映射后,必须在控件的实现文件(.CPP 文件)中定义它。 以下代码行定义事件映射,允许控件触发特定事件:

BEGIN_EVENT_MAP(CMyAxUICtrl, COleControl)
END_EVENT_MAP()

如果使用 MFC ActiveX 控件向导创建项目,则会自动添加这些行。 如果不使用 MFC ActiveX 控件向导,则必须手动添加这些行。

在类视图中,您可以添加由类 COleControl 支持的库存事件或您定义的自定义事件。 对于每个新事件,类视图会自动将相应的条目添加到控件的事件映射和控件的 .IDL 文件中。

另外两篇文章详细介绍了事件:

另请参阅

MFC ActiveX 控件
MFC ActiveX 控件:方法
COleControl 类