1.将常用的功能封装在一个ActiveX控件中,简化开发, 可以设定运行时许可,防止其他人没有许可而免费试用。
2.一个典型的ActiveX控件,具有 方法、属性(颜色、背景等)、事件三种特性
3.1个文件可以包含多个ActiveX控件
4.MFC向导生成ActiveX包含三个类:C*App应用程序类,表示控件程序本身、C*Ctrl主窗口类,对控件窗口操作都在此、C*PropPage对话框类,类似于对话框图形界面,相关资源与之对应.
C*Ctrl 包含 1个消息映射、调度映射:以便外部应用程序调用本控件的属性和方法、事件映射:让控件向包含它的容器发送事件通知。
消息映射 :例如有1个WM_CREATE消息,添加1个消息映射OnCreate;1个WM_TIMER消息,添加1个OnTimer
调度映射:类似于消息映射,但调度映射将虚拟成员函数映射到 IDispatch IDS,而不是 Windows 消息 ID。
为使控件正确支持不同的方法,该控件的类必须声明调度映射。这由位于控件类头 (.H) 文件中的下列代码行实现:
DECLARE_DISPATCH_MAP()
调度映射的主要用途是在以下两者之间建立关系:外部调用方(如容器)所使用的方法名,和实现这些方法的控件类的成员函数。声明调度映射后,需要在控件的实现 (.CPP) 文件中定义此调度映射。下列代码行定义调度映射:
为使控件正确支持不同的方法,该控件的类必须声明调度映射。这由位于控件类头 (.H) 文件中的下列代码行实现
BEGIN_DISPATCH_MAP(CSampleCtrl, COleControl)
...
END_DISPATCH_MAP()
事件映射:分为标准事件和自定义事件。
标准事件如系统的一些标准事件,如Click等。控件想容器发事件通知,容器内部会自动实现接口。
自定义事件必须在某个条件到来时,自动生成被调用函数,在条件判断处,显示地调用某个函数发出该事件通知。
事件的消息响应在容器应用程序处添加对应消息的响应事件,手动实现响应响应函数接口。
在对话框资源中添加1个ActiveC控件:
有两种方式,第一种方式不会产生控件对象。
第二种方式会产生控件对象,分为静态创建和动态创建。
静态创建在工具箱中直接添加。
动态创建在对话框类中维持1个控件对象,通过相应的函数来实现创建和方法、属性的调用