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 文件。
另外两篇文章详细介绍了事件: