您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 第12章 c++程序设计 陈圣国
12.1COM、OLE、ActiveX简介12.2编程示例:ActiveX控件的使用方法第12章ActiveX返回主目录第12章ActiveX12.1COM、OLE、ActiveX简介12.1.1OLE/COMOLE即对象的链接与嵌入,它的基本功能是链接和嵌入,可以把不同应用程序产生的图表、文件和图片组合到一个文件中去,这种文件称为复合文档。链接在复合文档中保持一个指向包含寄生应用程序数据文件的指针。任何使用链接文件的人,对它做的改动都会在复合文档中反映出来。链接文件必须随复合文档移动,否则指针就会断裂。嵌入把寄生应用程序的数据保留在复合文档中,这些数据随宿主应用程序而动,对嵌入数据的修改不影响宿主环境以外的数据。用于创建复合文档的应用程序称为容器应用程序,而用于创建复合文档数据的应用程序称为服务器应用程序。组件对象模型COM(ComponentObjectModel)是OLE的核心,它提供了一个实现OLE的框架。它是一种面向对象的结构,定义了一套对象间相互通信的标准方式,规定了如何使一些小的、定义良好的软件模块在系统中共存并充分地相互作用。依照这种结构,可以将若干元件组合起来,以建立更大的和更复杂的系统。12.1.2OLE自动化OLE自动化允许一个应用程序驱动另一个应用程序,例如在VB中创建EXCEL表格等。它克服了链接和嵌套中存在的缺点(即无法用编程手段对对象进行控制),实现了对OLE组件的编程式控制。OLE自动化包括两部分应用程序:一个是把OLE组件暴露出来使之可控制的应用程序,叫做OLE自动化服务器;另一个是利用OLE服务器提供的组件,对该对象进行控制操作的应用程序,叫做OLE客户。每个OLE对象都有属性(Property)和方法(Method),OLE自动化服务器的编写者决定哪些属性和方法将通过OLE自动化暴露出来,而私有对象对于外部用户来说是不可见的。OLE客户编程人员只需知道包含对象的应用程序的名称、对象的类的名称和想要使用的属性和方法的名称,就可以使用自动化服务器了。12.1.3OLE/ActiveX控件OLE控件(OCX)是OLE自动化的扩展,它遵循OLE自动化的全部规则,但又增加了一些事件驱动功能。ActiveX控件对OLE控件作了适应Internet环境的扩充。OLE控件与OLE自动化的不同点在于:(1)增加了事件驱动。(2)提供了一个可以驻留在宿主应用中的可视界面。(3)有自己的属性页。OCX控件的创建和使用是不受语言约束的,可以用于任何Windows编程环境,如VisualC++、VisualBasic、Delphi、C++Builder等。12.2编程示例:ActiveX控件的使用方法下面通过建立一个简单的Web浏览器来介绍如何在应用程序中使用ActiveX控件。(1)新建基于对话框的应用程序MyExplorer。(2)使用MicrosoftWeb浏览器控件。在VisualC++中,微软公司的Web浏览器可以作为控件使用,使用这一控件我们可以方便地浏览Web网页。在对话框编辑器的工具箱中,只提供缺省的常用控件,因此,我们必须先把该控件加入到工具箱中。①选择Project/AddtoProject/ComponentsandControls菜单项,打开ComponentsandControlsGallery对话框,如图12.1所示。图12.1ComponentsandControlsGallery对话框②双击列表框中的RegisteredActiveXControls图标,列表框中将列出系统中所有的ActiveX控件,如图12.2所示。图12.2ActiveX控件列表③在列表框中找到“MicrosoftWeb浏览器”,单击该图标,然后单击Insert按钮。系统询问是否插入该组件,单击OK打开ConfirmClasses对话框,如图12.3所示。④该对话框用于询问用户使用什么类控制新控件。单击OK按钮,将MicrosoftWeb浏览器控件加入到对话框编辑器工具箱中,如图12.4所示。⑤在ComponentsandControlsGallery对话框中单击Close按钮,关闭该对话框图12.3ConfirmClasses对话框图12.4加入MicrosoftWeb控件的工具箱(3)设计浏览器。按图12.5所示布置各控件,并按表12.1设置控件的成员变量及消息响应函数。图12.5MyExplorer对话框界面表12.1MyExplorer对话框中控件的成员变量和消息响应函数控件Ids类型成员变量IDC_EDIT1CStringm_urlIDC_EXPLORER1CWebBrower2m_Explorer对象消息响应函数IDC_BUTTON1BN_CLICKEDOnButton1(4)编写OnButton1()函数,实现Web浏览:voidCMyExplorerDlg::OnButton1(){//TODO:AddyourcontrolnotificationhandlercodehereUpdateData(TRUE);//更新m_url变量m_Explorer.Navigate(m_url,0,0,0,0);//使用Web控件的Navigate方法实现浏览}现在编译并运行程序。在编辑框中输入想要访问的网址,单击“浏览”按钮,运行情况如图12.6所示。图12.6MyExplorer程序的运行第12章ActiveX187
本文标题:第12章 c++程序设计 陈圣国
链接地址:https://www.777doc.com/doc-3956595 .html