vs2017开发ActiveX(主讲OCX)(七)、方法

知识共享许可协议 版权声明:署名,允许他人基于本文进行创作,且必须基于与原先许可协议相同的许可协议分发本文 (Creative Commons

方法

文章目录


ActiveX控件触发事件以在其自身与其控件容器之间进行通信。容器还可以通过方法和属性与控件通信。方法也称为函数。

方法和属性提供导出的接口,供其他应用程序使用,例如自动化客户端和ActiveX控件容器。有关ActiveX控件属性的详细信息,请参阅文章MFC ActiveX控件:属性。

方法在使用和目的上类似于C ++类的成员函数。您的控件可以实现两种类型的方法:常用和自定义。与常用事件类似,常用方法是COleControl为其提供实现的方法。有关常用方法的详细信息,请参阅文章MFC ActiveX控件:添加常用方法。由开发人员定义的自定义方法允许对控件进行额外的自定义。有关更多信息,请参阅文章MFC ActiveX控件:添加自定义方法。

Microsoft基础类库(MFC)实现了一种机制,允许您的控件支持常用和自定义方法。第一部分是COleControl类。 COleControl成员函数派生自CWnd,支持所有ActiveX控件通用的常用方法。该机制的第二部分是调度映射。调度映射类似于消息映射;但是,调度映射不是将函数映射到Windows消息ID,而是将虚拟成员函数映射到IDispatch IDS。

对于正确支持各种方法的控件,其类必须声明一个调度映射。这是通过位于控件类头(.H)文件中的以下代码行来完成的:

DECLARE_DISPATCH_MAP()

调度映射的主要目的是建立外部调用者(如容器)使用的方法名称与实现这些方法的控件类的成员函数之间的关系。 在声明了调度映射之后,需要在控件的实现(.CPP)文件中定义它。 以下代码行定义了调度映射:

BEGIN_DISPATCH_MAP(CCreateOcxDemoCtrl, COleControl)

END_DISPATCH_MAP()

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

以下文章详细讨论了方法:

MFC ActiveX控件:添加常用方法

MFC ActiveX控件:添加自定义方法

MFC ActiveX控件:从方法返回错误代码

猜你喜欢

转载自blog.csdn.net/y601500359/article/details/92830292