ActiveX控件学习摘要


ActiveX 控件是用于互联网的很小的程序,有时称为 插件程序。它们会允许播放动画,或帮助执行任务,如在 Microsoft Update 安装安全更新,因此可以增强您的浏览体验。 [1]  
ActiveX是Microsoft对于一系列策略性 面向对象程序技术和工具的称呼,其中主要的技术是 组件对象模型(COM)。在有目录和其它支持的网络中,COM变成了分布式COM(DCOM)。
在创建包括ActiveX程序时,主要的工作就是组件,一个可以自足的在ActiveX网络(Windows,Mac,Linux)中任意运行的程序。这个组件就是ActiveX控件。ActiveX是Microsoft为抗衡Sun Microsystems的JAVA技术而提出的,此控件的功能和java applet功能类似。
Windows操作系统中以OCX结尾的文件, OCX代表“对象链接与嵌入控件”(OLE),这个技术是Microsoft提出的程序技术,用于处理桌面文件的混合使用。COM的概念已经取代OLE的一部分,Microsoft也使用ActiveX控件代表组件对象。
组件的一大优点就是可以被大多数应用程序再使用(这些应用程序称为组件容器)。一个 COM组件(ActiveX控件)可由不同语言的开发工具开发,包括C++和Visual Basic或PowerBuilder,甚至一些技术性语言如VBScript。

1.Component Object Model(COM——组件对象模型)一种 面向对象的编程模式。它定义了对象在单个应用程序内部或多个应用程序之间的行为方式。英文为Component Object Model,缩写COM,是微软对于网页服务器与客户端、增益集与Office系列软件之间交互的一项软件组件技术。
Windows 操作系统提供了三种应用程式间的通讯机制:剪贴板(clipboard)、 DDEOLE。OLE原名是物件连结与嵌入(Object Linking and Embedding),OLE可说是DDE的改良版,OLE 1.0版提供 复合文件(compound document)处理。但过於复杂,Brockschmidt, Kraig「Inside OLE」一书中提到,必须经过六个月的心灵混沌期,才能了解OLE是什么。因此OLE 2.0后,微软提出COM架构。所有OLE元件皆是继承COM而来,这些技术包含OLE Document和OLE Controls、Drag and Drop等。



2.ActiveX控件具有方法,属性,事件三种特性。



3.调度映射是MFC提供的一种映射机制,主要是为了让外部应用程序可以方便地访问控件的属性和方法,而事件映射则可以让控件可以向包含它的容器发送事件通知。

OLE自动化提供了在应用程序之间调用方法和访问属性的途径。由微软基础类库提供的调度这些请求的机制称为“调度映射”,它分配对象函数和属性的内部、外部名字,同时还分配属性本身和函数参数的数据类型。
DECLARE_DISPATCH_MAP声明将使用一个调度映射来揭示一个类的方法和属性(必须用于类声明中)
BEGIN_DISPATCH_MAP开始一个调度映射的定义
END_DISPATCH_MAP结束一个调度映射的定义
DISP_FUNCTION用于调度映射中,以定义一个OLE自动化函数
DISP_PROPERTY定义一个OLE自动化属性
DISP_PROPERTY_EX定义一个OLE自动化属性并且命名“get”和“set”函数
DISP_PROPERTY_NOTIFY为一个OLE自动化属性定义通知消息
DISP_PROPERTY_PARAM定义一个带参数的OLE自动化属性,并且命名了“get”和“set”函数
DISP_DEFVALUE将一个现存的属性设置为一个对象的缺省值




4. 将TeeChart5进行系统注册。

方法一: 使用regsvr32.exe 程序对active控件进行注册(如果是删除,则用regsvr32/u命令)

方法二;    在程序代码中进行注册


个人偏向于第一种:先将TeeChart5.ocx拷贝到C:\WINDOWS\system32目录下,点击控制面板的运行——开始——输入命令

regsvr32   TeeChart5.ocx ——确定

2)  在VC中选择 Project / Add to Project / Components And Controls/下选择Registered ActiveX Controls,然后找到TeeChart Pro Activex control v5。选择确定即可,这样在我们的项目中出现很多的类,同时在控件区域会出现




5.ActiveX控件有四种属性:

(1)Stock:为每个控件提供的标准属性,如字体或颜色。

(2)Ambient:围绕控件的环境属性——已被置入容器的属性。这些属性不能被更改,但控件可以使用它们调整自己的属性。

(3)Extended:这些是由容器处理的属性,一般包括大小和在屏幕上的位置。

(4)Custom:由控件开发者添加的属性。




6.源接口表示控件将使用这个接口来发送通知事件,这个接口不是控件本身实现的接口。



7.MFC为一些基本类型都提供了一个以“PX_"开头的函数,例如PX_Short,PX_Long等。
BOOL PX_Short(CPropExchange*pPX,LPCTSTR pszPropName,short&sValue,short sDefault);
pPX指向CPropExchange对象的一个指针。
pszPropName 提供给外部程序使用的属性的名称,
sValue 与属性相关联的类的成员变量。
sDefault 默认属性值。
将PX_Short函数添加到DoPropExchange函数中即可设定属性的持久性。

DoPropExchange用于持久化,OnResetState用于初始化属性。
DDP_Text(以及所有其它类似函数)的第4个参数都是初始值,只要合法,自己想设置为多少都行。



8. AmbientUserMode() 来取得当前容器的状态 ,是在运行时(返回非0值)还是设计时(返回0值);GetNotSupported()能产生 CTL_E_GETNOTSUPPORTED 自动化异常。



9.COleControl::InvalidateControl()。Forces the control to redraw itself.
 void InvalidateControl( 
   LPCRECT lpRect = NULL, 
   BOOL bErase = TRUE  
);

lpRect A pointer to the region of the control to be invalidated. bErase Specifies whether the background within the update region is to be erased when the update region is processed.



10.ActivX控件也是一种控件,也可以通过控件的常用操作方法来进行操作。




评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值