Windows核心编程之ActiveX

Windows核心编程之ActiveX

ID:41037384

大小:122.50 KB

页数:14页

时间:2019-08-14

Windows核心编程之ActiveX_第1页
Windows核心编程之ActiveX_第2页
Windows核心编程之ActiveX_第3页
Windows核心编程之ActiveX_第4页
Windows核心编程之ActiveX_第5页
资源描述:

《Windows核心编程之ActiveX》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、2.1ActiveX控件介绍ActiveX是在M$与JAVA抗争时产生的一个新名词(1996年3月),ActiveX技术的前身是OLE技术是M$为了适应Internet的发展对OLE进行的扩展(当时的含义是“ActiveatetheInternet”),当时只是为了发展一种小型的可从网络上快速下载的可重用组件。但是随着ActiveX技术的发展ActiveX很快成为了M$新的口号。ActiveX由定义WEB页面到OLE控件的所有内容发展到定义一种可重用组件技术的规范。现在ActiveX已经成为一种概念和潮流。ActiveX的基础是

2、OLE和COM,但是通过M$的各种开发工具可以屏蔽掉COM模型中许多另人费解的技术细节。本节主要讨论如何开发ActiveX控件,其实这只是AcitveX组件技术中的一部分。ActiveX组件技术包括以下一些方面:·自动化服务器·自动化控制器·控件·COM对象·文档·容器现在的ActiveX控件等价与以前的OLE控件或OCX,一个典型的控件包括设计时和运行时的用户界面,唯一的IDispatch接口定义了控件的属性和方法,唯一的IConnectionPoint接口定义控件可引发的事件。一个控件可以在容器中运行,所以从运行的角度看它类

3、似与一个DLL。由于在IE中添加了对控件的支持,所以你可以在WEB页面中通过VBScript对控件进行操纵。此外COM组件间在二进制上兼容,当其中一个组件的代码被修改并且被重新编译连接后只要能够保持原来已经存在并被使用的接口不变化(可以添加其他接口)那么其他使用这个组件的文件都不需要重编译。所以利用COM组件技术可以很大程度上的提高软件重用性。同样如果在程序中使用了ActiveX控件那么你在以后升级程序时可以单独升级控件而不需要升级整个程序。在提供灵活性的同时会带来性能上的牺牲,但和ActiveX为我们代码的好处上看来这些牺牲都

4、算不了什么。利用MFC的ApplicationWizard我们可以方便的创建一个工程,首先在工程类型中选择MFCActiveXControl,然后选择在工程中创建多少个控件。在接下来的对话框中并且为每个控件输入相关信息,通过EditName按钮可以为控件指定名称,通过Advanced按钮可以为控件指定各种附加特性,此外你还可以将控件指定为一个继承了某种现有窗口类的子类。在本节的例子中我们创建三个控件,分别是:·普通窗口控件CSam_windowCtrl·无窗口控件CSam_nowindowCtrl·EDIT窗口控件CSam_ed

5、itwindowCtrl在工程创建完毕后你就可以编译并测试控件了,但是这时候的控件还不能做任何事情。我们需要为控件添加方法和属性。简单的讲,方法就相当与类中的函数调用,而属性就相当与类中的成员变量。假设在普通窗口控件中我们将显示一份学生资料,包括姓名,出生年月,班级名称,为了能够设置这些数据,我们为控件添加一个方法。选择ClassWizard,并选中对话框中的Automation页,按下AddMethod按钮以添加消息,然后在弹出的对话框中输入相关信息。我们为新添加的方法取名为SetMertial,同时指定三个参数LPCTSTR

6、pszName,LPCTSTRpszBirth,LPCTSTRpszClass,返回值设置为void,在保存后ClassWizard会生成一个函数,该函数的名称就是你所指定的方法名称。此外我们还添加一个属性用于让用户设置显示文字的颜色。在添加属性对话框中为属性取名为TextColor,并且接收的参数为OLE_COLOR,并且将实现方法设定为Get/SetMethods。在保存后ClassWizard会为你生成GetXXX/SetXXX两个函数XXX就代表你所指定的属性名,当控件容器更改属性时就通过这两个函数。然后我们为CSam_

7、windowCtrl添加三个成员变量保存这些学生资料和一个用于保存颜色,当然别忘了在构造函数中对它们初始化。然后修改和添加与方法和属性有关的函数,我们可以看到在数据被修改后都会调用Invalidate()使窗口重绘。//添加成员变量classCSam_windowCtrl:publicCOleControl{DECLARE_DYNCREATE(CSam_windowCtrl)//Constructorpublic:CSam_windowCtrl();CStringm_szName,m_szBirth,m_szClass;...}

8、//初始化CSam_windowCtrl::CSam_windowCtrl(){InitializeIIDs(&IID_DSam_window,&IID_DSam_windowEvents);m_szName="name";m_szBirth="birth";m

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。