admin管理员组

文章数量:1530517

2024年7月3日发(作者:)

Activex技术

组件对象模型(Component Object Model ,COM)是Microsoft的ActiveX技术的

基础。

C++来写ActiveX控件,有两个流行的框架,一个是Microsoft Foundation Classes

(MFC),另一个是ATL。

使用MFC来构建ActiveX控件

COleControl 从CWnd派生得到,也是一个窗口类,

CClockCtrl 相当于单文档程序的主窗口类。

这个类包含重绘用的OnDraw函数,也包含了一些消息映射,包括调度映射。

Dispatch maps调度映射,主要是MFC提供让外部应用程序可以访问控件的属性和

方法。

Event maps事件映射,控件向包含它的容器发送事件通知。

CClockPropPage 类由 COlePropertyPage 派生而来:

被用来显示一个自定义控件的属性,类似于一个对话框。

它是对话框类,于是 enum { IDD = IDD_PROPPAGE_CLOCK }给它关联了一个对话

框资源。

在工程中,还有两个全局函数:

STDAPI DllRegisterServer(void)

将控件信息写入注册表中

STDAPI DllUnregisterServer(void)

卸载注册信息。

在三个类之上,还有类似小勺的图标Dclock,_DClockEvents,它们表示接口。

接口是外部程序和控件进行通信的协议,可以把接口看作是函数的集合,

外部程序通过接口提供的方法,去访问控件的属性和方法。

也可以将接口看作抽象基类,接口中所定义的所有函数都是纯虚函数,

这些函数的实现都是在CClockCtrl类中实现,

MFC通过底层的封装使CClockCtrl类继承Dclock接口。

所以调用接口,事实上调用的是CClockCtrl类中的函数。

本文标签: 控件接口函数映射程序