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 类