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控件也是一种控件,也可以通过控件的常用操作方法来进行操作。




  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值