ActiveX 控件触发事件以在自身与其控制容器之间进行通信。 容器还可以通过方法和属性与控件通信。 方法也称为函数。
方法和属性提供导出的接口供其他应用程序(如自动化客户端和 ActiveX 控件容器)使用。 有关 ActiveX 控件属性的详细信息,请参阅 MFC ActiveX 控件:属性一文。
方法的使用和用途类似于C++类的成员函数。 控件可以实现两种类型的方法:库存和自定义。 与股票事件类似,股票方法是 COleControl 为其提供实现的方法。 有关股票方法的详细信息,请参阅 MFC ActiveX 控件:添加股票方法一文。 由开发人员定义的自定义方法允许对控件进行其他自定义。 有关详细信息,请参阅 MFC ActiveX 控件:添加自定义方法的文章。
Microsoft基础类库(MFC)实现一种机制,使控件能够支持库存和自定义方法。 第一部分是类 COleControl
。 成员函数派生自 CWnd
所有 COleControl
ActiveX 控件都支持通用的 stock 方法。 此机制的第二部分是调度映射。 调度映射类似于消息映射;但是,调度映射将虚拟成员函数映射到 IDispatch IDS,而不是将函数映射到 Windows 消息 ID。
要使控件能够正确支持各种方法,其类必须声明调度映射。 这由位于控件类标头()中的以下代码行来完成。H) 文件:
DECLARE_DISPATCH_MAP()
调度映射的主要用途是建立外部调用方(如容器)使用的方法名称与实现方法的控件类的成员函数之间的关系。 声明调度映射后,需要在控件的实现() 中定义它。CPP) 文件。 以下代码行定义调度映射:
BEGIN_DISPATCH_MAP(CMyAxUICtrl, COleControl)
END_DISPATCH_MAP()
如果使用 MFC ActiveX 控件向导 创建项目,则会自动添加这些行。 如果未使用 MFC ActiveX 控件向导,则必须手动添加这些行。
以下文章详细介绍了方法: