ActiveX控件开发简介
- 格式:ppt
- 大小:603.00 KB
- 文档页数:23
ActiveX控件是一个模块化的灵活对象,如果在某个应用程序中增加一些特殊的扩展功能,这样开发者就无须重写整个代码程序,只要灵活地插入一个具有特定功能的ActiveX控件即可实现特定的功能。
在Authorware多媒体创作平台中利用ActiveX控件进行开发,可以大大地节省开发系统时所需要的工作量和工作时间。
使用ActiveX控件是Authorware及其有价值的扩展,利用ActiveX控件,几乎可以完成任何事情。
具体来说,Authorware是通过Activex.x32和Actxpriv.x32这两个文件来实现ActiveX扩展的。
以上两个文件我们可以在Authorware安装目录下的“Xtras”文件夹里找到。
其中“Actxpriv.x32”是创作用户界面,“Activex.x32”是运行Authorware作品,这两个文件是Authorware和ActiveX控件的通信桥梁。
在制作开发Authorware的应用程序中如果利用了ActiveX控件,就必须保证打包发布后在用户的应用程序中附带上所需的支持文件,即只要在应用程序的“Xtras”目录里附带上Activex.x32,因为只有这样应用程序才能够正常地执行,否则将回出现类似图4.7所示的错误提示,程序中的ActiveX控件也是无法使用的。
但是需要注意的是打包程序无须附带上Actxpriv.x32,否则会造成不可预料的后果,因为它主要负责设计时ActiveX控件的界面,图4.8 Authorware中使用ActiveX控件需要支持文件借助于ActiveX控件进行Authorware多媒体程序开发时,一般都要将所需ActiveX控件文件(*.OCX)复制到硬盘中,然后将其在Windows系统中注册。
注册方法可以选择手动注册或者直接在Authorware应用程序中加入ActiveX控件注册代码。
手动注册方法十分简单,需要用到Windows系统提供了一个名为“Regsvr32.exe”可执行文件,如我们要注册“SwFlash.ocx”控件,具体步骤如下:(1)把“SwFlash.ocx”控件文件复制到Windows安装目录下的System子目录下;(2)在Windows的[开始]菜单中的[运行]里运行注册命令行:regsvr32 SwFlash.ocx;(3)如果注册成功,Windows系统此时将回弹出如图4.9所示的提示对话框,重新启动Authorware后,在Authorware菜单Insert—>Control—>ActiveX….列表中就可以找到所需的ActiveX控件。
步步学ACTIVEX网页控件开发转载自IT168 [ / ]第1页:创建ActiveX控件本文将首先介绍如何使用Visual Studio开发一个简单的ActiveX控件,然后介绍ActiveX控件开发相关的基础知识,比如方法,属性和事件等,最后介绍如何利用这些知识,实现ActiveX控件和网页页面之间的通信。
MyActiveX控件的效果图简介ActiveX是由Microsoft在90年代中期提出的一项技术。
利用ActiveX技术,开发者可以创建像Java小程序applet一样的小型应用程序。
这些应用程序可以被下载然后在Microsoft的浏览器中运行。
这篇文章是为那些想学习如何开发他们的第一个ActiveX控件的Visual C++开发者准备的。
当我自己尝试学习这些技术的时候,我发现很多针对ActiveX技术的资料都已经不再适用了,都已经过时了,或者丢失了很多关键性的信息,这些都使得我在为我的项目创建一个ActiveX控件的时候,变得困难重重。
这篇文章将帮助你实现ActiveX网页控件开发的快速入门。
本文将首先介绍如何使用 Visual Studio开发一个简单的ActiveX控件,然后介绍ActiveX控件开发相关的基础知识,比如方法,属性和事件等,最后介绍如何利用这些知识,实现ActiveX控件和网页页面之间的通信。
另外,你也将学习到如何在默认的Internet Explorer安全设置下取消掉控件加载过程中的警告或者错误提示,使你的控件成为一个“安全”的ActiveX控件。
在本文中,我们将创建一个实际的ActiveX控件。
在控件加载的过程中,它将显示一个动态的进度条,告诉用户控件正在加载并处理信息。
同时,这个控件也将展示如何在ActiveX控件和Web页面之间传递信息。
本文将引导你一步步地利用Microsoft Visual Studio 2005完成ActiveX控件的开发工作。
创建ActiveX控件要创建一个ActiveX控件,首先启动Visual Studio 2005,执行下面这些步骤:1.选择“文件”菜单,然后选择“新建”->“项目”。
浏览器插件之ActiveX开发(一)一般的Web应用对于浏览器插件能不使用的建议尽量不使用,因为其涉及到安全问题以及影响用户安装(或自动下载注册安装)体验问题。
在有特殊需求(如涉及数据安全的金融业务数据交互、需插件才能实现的与本地设备的交互等)的情况下可以酌情慎用。
浏览器插件总体可以划分为两大阵营,即IE支持的插件以及非IE支持的插件。
本来在Netscape时代,对于浏览器插件是有公用的规范的(NPAPI),一开始所有浏览器都支持该规范,包括IE。
后来出于商业原因,微软的IE不再支持NPAPI,改而自己开发了一套基于COM的ActiveX体系,但这个体系对于非IE浏览器是拒绝支持的。
所以目前的状况基本是,IE浏览器仅支持ActiveX控件,而Firefox、Chrome等浏览器只支持另一类接口(XPCOM或NPAPI)。
要想实现一个Web插件,至少需要同时考虑IE支持的AceiveX版以及非IE支持的Plugin版(Flash等插件对于IE与非IE浏览器都是不同的)。
ActiveX的开发可以用C#、VB及C++等语言。
用C++开发ActiveX既可以使用ATL,也可以使用MFC。
ATL ActiveX输出文件较小,适合网络传输,但开发复杂度稍大;而MFC ActiveX输出文件稍大(附带必要的MFC dll),但易于上手。
本文主要介绍基于MFC的ActiveX 开发。
一、创建项目及添加接口在 2008中,新建一个MFC ActiveX Control项目:点击―OK‖后将弹出如下对话框:依次点击―Next‖按钮直到―Control Settings‖标签页:由于本例子只演示仅提供函数接口不基于界面的ActiveX,故―Create control based on‖选择―(none)‖即可。
点击"Finish‖按钮,即完成了项目的创建,文件结构如下:右击项目名称,选择―Properties‖,在项目属性对话框中对―All Configurations‖进行配置。
第13章 ActiveX控件第一讲 ActiveX控件概述、ActiveX控件的创建和使用教学目标1. 了解 ActiveX控件的定义和功能。
2. 理解掌握 ActiveX控件的创建步骤。
3. 理解 ActiveX控件的使用方法。
教学过程预备知识一、ActiveX控件概述ActiveX控件可以简单地理解为能够实现特定功能的控件,例如可以浏览网页的控件、可以播放音频与视频的控件,可以播放Flash动画的控件等等。
ActiveX控件是一种可重用的软件组件,由编程语言开发,开发ActiveX控件可以使用各种编程语言,如C,C++,当然也包括Visual 环境的、、C#等编程语言。
ActiveX控件目前仅适用于Windows平台。
ActiveX控件一旦被开发出来,即和其开发时使用的编程语言无关。
ActiveX控件通常保存在ocx或dll文件中。
ActiveX控件不能单独运行,必须依赖某种应用程序,如Windows应用程序、Web应用程序等,这些程序称为ActiveX控件的宿主程序。
默认状态下,工具箱并不包含ActiveX控件,要使用ActiveX控件,需要向工具箱中添加,对不需要的ActiveX控件可以从工具箱移除,添加与移除ActiveX控件需要通过“自定义工具箱”对话框操作。
在工具箱中右键单击鼠标,选择弹出菜单中的“添加/移除项”命令,或选择工具菜单中的“添加/移除工具箱项”命令,打开“自定义工具箱”对话框。
二、创建ActiveX控件1. 创建ActiveX控件的步骤创建ActiveX控件的一般过程如下:①创建ActiveX控件项目。
②设计ActiveX控件界面。
③设计ActiveX控件代码。
④生成ActiveX控件。
2. 测试ActiveX控件由于ActiveX控件不是独立的应用程序,不能通过运行来调试,因为它们必须寄宿在容器中(例如放置在窗体这样的容器中)所以为了测试控件,必须提供一个能在其中运行该控件的测试项目。
简介ActiveX是微软提出的一项平台性技术,其本身并不是一种具体的软件产品,而是一种开发思想,或者说是一种开发模式。
所以我们既可以利用ActiveX技术来开发“Webim的截屏控件”,也可以用来开发“代码添加控件”。
ActiveX的历史可以追溯到1996年微软提出的OLE(Object Linking and Embedding)规范,后来这一规范又发展成为COM技术。
而COM技术也构成了目前我们使用的Windows NT平台的基础,baidu hi 和baidu bridge也主要借鉴了COM技术的框架,所以我们能够实现增量更新(就是替换某些DLL,而不是升级时下全部的二进制文件),因为COM技术在Windows平台下实现了二进制的兼容性。
譬如下图是bridge的安装目录,二进制的兼容可以简单理解为:1)客户安装了bridge 1.1.1.1,所有的dll, exe等二进制文件的版本都是1.1.1.1, 一次性编译,链接形成,相当于RD在编译机上编译一次提测后,QA得到安装包并将其解压的内容2)客户用某个高版本的dll, 譬如skindll.dll 1.1.1.2 (新单独编译的、升级后的)来覆盖掉skindll.dll 1.1.1.1,注意其他的二进制仍然为1.1.1.1 3)因为二进制兼容,所以baidubridge.exe(1.1.1.1)仍然可以正常启动,正常使用,而且用的skindll是升级后的1.1.1.2 (换句话说,如果不是二进制兼容,那么baidubridge.exe(1.1.1.1)就无法运行了)可见,二进制兼容带来了极大的好处,提供了增量更新程序的可能。
COM技术提供了这种二进制兼容,所以基于COM技术的ActiveX技术自然继承了这一特性了。
ActiveX其实就是穿了“马甲”的COM,知晓了COM技术,也就能了解ActiveX啦。
下面可以再来看一下ActiveX技术应用的一个例子,即在Word中嵌入了一个Visio画的图,这个例子说明ActiveX技术并不是仅仅应用于网页中的控件(如代码添加控件),同时也存在于Microsoft Office系列的产品之中,充分说明了ActiveX技术的广泛适用性以及灵活性。
使用MFC开发ActiveX控件MFC(Microsoft Foundation Classes)是一套用于开发Windows应用程序的C++类库,它提供了一组封装了Windows API的类和函数,可以方便地开发Windows桌面应用程序。
ActiveX(ocx)控件是一种可重用的组件,可以嵌入到其他应用程序中使用,可以在网页上嵌入,也可以在Visual Studio等开发环境中使用。
下面将介绍如何使用MFC开发ActiveX控件。
然后,根据自己的需求,在OnDraw函数中绘制控件的外观。
可以使用GDI+函数绘制各种形状、文字、图像等。
可以通过设置控件属性,比如颜色、大小、透明度等来改变控件的外观。
接下来,处理控件的消息和事件。
通过重写控件类的成员函数,比如OnLButtonDown、OnKeyDown等,可以处理鼠标和键盘的输入事件。
可以在函数中编写相应的逻辑代码,比如响应鼠标点击事件时弹出一个对话框。
在控件类中,可以添加成员变量和成员函数,用于保存控件的状态和实现控件的功能。
可以在控件的Load函数中初始化控件,可以在DoPropExchange函数中保存控件的属性,可以在Serialize函数中保存控件的状态。
最后,编译项目,生成ActiveX控件的.dll文件。
可以在同一解决方案的其他项目中引用这个控件,通过拖拽控件到窗口上的方式将其嵌入到应用程序中使用。
总结起来,使用MFC开发ActiveX控件主要有以下几个步骤:创建MFC应用程序项目,设计控件的外观,处理控件的消息和事件,实现控件的功能,编译项目,生成ActiveX控件的.dll文件。
通过这些步骤,可以方便地开发自己的ActiveX控件,并在其他应用程序中使用。
IE的ActiveX控件的开发(一)(2006-09-06 19:00:50)分类:工作需要,突然要开发一个IE的ActiveX控件。
由于以前没有接触过这方面的东西,因此走了一些弯路。
网上搜了一大堆资料,又多又杂,东一块西一块的,关于第一次接触者和快速开发很不利,在此特意整理出来,以备忘,作参考。
ActiveX简介ActiveX是一个可能念,也微软进军网络应用的一个王牌武器之一。
我自己开发的ActiveX插件其实只是一个OCX控件,嵌入html代码中去应用。
因此这篇文章更多的涉及了OCX的东西。
OCX文件:OCX文件的全称是Object Linking and Embedding (OLE) Control Extension,中文名字叫做“嵌入式对象控件”,它的作用其实和适才谈到的DLL文件专门相像,其实所谓的OLE咱们平常已经超级熟悉了,简单地说就像在Word中能够利用Excel数据,写字板中能够嵌入图片文件等等这些功能。
打个例如的话,剪贴板就像是个简单的数据共享,而OLE那么是一种“对象共享”。
一、OCX组件的来历是如何的?一样的开发工具都会提供一些标准控件,但不管标准控件何等壮大、何等完善,都不能完全知足用户的需要。
因此易语言就提供一个接口,许诺用户编写自己的控件插入到易语言中利用。
用户编写自己的控件在利用方式上同标准控件是相同。
依照易语言的接口标准编写的控件确实是OCX。
由于利用OCX能够节省开发软件的时刻,因此此刻几乎所有开发工具都许诺用户利用OCX来增强其功能。
后来随着Internet的流行,微软又让网页中能够嵌入OCX,并称其为 ActiveX 控件。
目前能够编写OCX的工具包括VB、VC、Delphi。
易语言也即将支持OCX。
二、OLE和OCX的关系是什么?OLE和OCX通称对象链接与嵌入。
易语言已通过超级链接框等实现很多对象的链接功能,对象的嵌入易语言也即将支持。
OLE 与OCX 的应用主若是源于将多个应用信息源组合到一路的目标,OCX即将在易语言中取得普遍的应用,因为它能更好的与易语言的应用程序相结合,从而实现易语言不行实现或是很难实现的功能。
用MFC开发ActiveX控件用MFC开发ActiveX控件一、 ActiveX控件简介1.1、概述ActiveX 控件是基于组件对象模型 (COM) 的可重用软件组件,广泛应用于桌面应用及Web应用中。
更通俗的讲:ActiveX控件是一种实现了一系列特定接口而使其在使用和外观上更象一个普通控件的COM组件。
不同的是ActiveX控件基于COM组件实现而了统一的接口。
因此,ActiveX控件可以跨进程,跨平台甚至跨语言使用。
ActiveX控件涉及到了几乎所有的COM和OLE的技术精华,如可链接对象、统一数据传输、OLE文档、属性页、永久存储以及OLE自动化等。
ActiveX 控件一般作为进程内服务器(通常是一个小型对象)实现,这决定了ActiveX 控件不能独立运行,必须嵌入到某个容器应用程序中与其一起运行。
1.2、ActiveX控件的基本特性一个典型的ActiveX控件一般具有方法、属性和事件这三种特性。
下面是这三种特性的简单描述:ActiveX控件必须对外公开自己的属性和方法,以适合不同特点的容器应用程序提供功能服务,其属性和方法均由OLE自动化服务的IDispatch接口来支持。
这就使我们在容器中使用ActiveX控件时,可以直接通过激活ActiveX控件提供(如的IDispatch接口中的方法和属性来调用ActiveX控件中实现的属性和方法。
在MFC中可以直接调用CWnd:: InvokeHelper、CWnd:: SetProperty、CWnd:: GetProperty在容器应用程序中来激活ActiveX控件提供的IDispatch接口中的方法和属性)。
ActiveX控件除了属性和方法外,ActiveX控件还具有区别于OLE自动化服务的一种特性——事件。
事件指的是从控件发送给其容器应用程序的一种通知,由容器应用程序来响应该通知。
与普通窗口控件通过发送消息通知其拥有者类似,ActiveX控件是通过触发事件来通知其容器应用程序的。
随笔- 69 文章- 0 评论- 717 .NET实现之(ActiveX插件开发)在打算讲这篇文章之前我深思一个下午,打算分两篇来讲的,但是又怕读者看着嫌烦;其实稍微了解一点ActiveX插件的朋友都能知道,这样一扯可能出现一堆问题;但是我还是决定通过简单的方式尽量让初学者少接触底层的东西包括OLE(对象连接与嵌入)、COM(组件对象模型)之类的概念,但是ActiveX插件在开发上有很高的技术要求,虽然.NET为我们封装了很好的实现途径,但是我们也总不能停留在,知自然而不知其所以然的层面上;今天这篇文章我大概构思了一下,我主要会由浅入深的去逐层的讲解,对一些概念性的东西,我会给出参考资料供大家去学习,由于它的发展历史我也就不去讲解了,主要是实现为主;如果喜欢刨根问底的朋友可以去查询相关的文章或者看一些关于OLE、COM方面的书籍,就算我们不从事相关开发,但是对于我们进行.NET互操作方面还是很有帮助的,也不至于让我们觉得.NET的局限性;本人向大家推荐一本OLE方面的好书:《OLE 2高级编程技术》其实说起ActiveX插件大家都会想起Flash插件,对Flash插件就是一个很典型的COM组件,宿主在以OLE为容器的Web浏览器应用程序中,我们把这个OLE容器称为复合文档应用,复合文档应用程序在微软的系统到处可见如:Office就是一个很强大的复合文档应用程序,为什么要称为复合文档应用程序呢,是因为以容器为宿主的时候,可以进行任何应用集成开发,在office里面我们可以进行图表的编辑、Excel的编辑等等;在这个OLE中使用的对象严格意思上讲都是COM组件,对COM不了解的朋友可以去看一下《COM本质论》也是一本很好的书籍,其实COM就是组件对象模型,是二进制的组件,在任何平台任何语言之间都能使用;它是一套组件规范一套开发标准,大家都去遵守这个约定,才能使不同厂商生产的组件互相调用;而ActiveX插件就是一个COM组件,在早期的开发中对COM的开发是一种望而生畏的感觉,也许我们做.NET开发的程序的感觉开发组件DLL可能并没有多大难度,不需要去了解一些操作系统底层的东西比如:函数在编译过后重新编码对调用产生的影响,不同操作系统对可执行文件的内存分配回收等等问题,都需要开发组件的人了如指掌之后才能开发出出色的COM组件,然而在今天我们站在.NET这艘航母上,不需要害怕这些复杂的技术难题,微软为我们打开一扇通往平坦大道的大门,用最简单的方式去开发最复杂的东西,从某种角度讲是好事,坏事就是让我们越来越远离核心的东西;这就要看每个人对技术的追求目标了;由于.NET开发出来的东西都是属于托管的,所以不是正真意义上的二进制标准,这就牵扯到.NET平台调用的技术P/Invoke和互操作Interop技术,但是我们不了解也没关系,这不影响我们开发ActiveX插件,我只是给大家指一个方向;用.NET开发出来的东西要想完全替代COM组件,因为OLE容器只接受COM组件才能使用,所以我们的托管DLL文件怎样才能被OLE容器调用呢,就是通过.NET互操作COM来实现,我们开发的ActiveX插件要被浏览器这么一个大强的复合文档程序加载和使用的,所以我们得将托管的组件包装成非托管的等价的COM组件才行,.NET提供了CCW(COM可调用包装)的机制,将我们的ActiveX插件通过中间转换一下就可以使用了,理论的东西我就到此结束,我们开始动手做一个ActiveX插件吧;先看一下ActiveX插件的运行图:这是系统在运行过程中要经历的过程调用步骤,有助于我们下面的开发讲解;首先是浏览器接受到远程服务器返回的HTML文本,然后浏览器将HTML转换成DOM对象在通过GDI 或者GDI+进行绘制渲染等界面呈现工作,发现在HTML中包含了对本地机器上的COM组件调用,通常也就是我们HTML中的object标签所定义的说明;在标签中会包含COM组件的唯一标识符GUID(全局唯一ID),在我们机器存在着成千上万个COM组件,只有通过GUID才能确定是哪一个组件,浏览器通过GUID到注册表中去查找这个COM组件在本机注册时的地址,得到地址后在将其COM组件加载到内容运行;这个过程被我细化了,只要能说明原理就行了;下面我们进入到VisualStudio工具进行ActiveX插件开发,我们要新建一个项目这个项目必须得以DLL文件的形式存在,但是要是ActiveX插件必须得有界面啊;所以我们新建一个Windows窗体控件库项目:2:新建后会出现一个默认的用户自定义控件我们随便放一个按钮就行了,然后写点测试代码;3:每一个ActiveX插件都有一个入口地址,这就是COM入口地址;我们就拿我们上面的这个测试界面作为入口地址;我们切换到代码视图;4:我们在这个类的上面添加了两个特性,ComVisible是否对COM公开,这个特性的意思就是说我们的组件是否能用于COM组件的相关调用查找;如果没有这个特性我们的组件是不能用作COM调用的;GUID特性就是用来为我们的这个类型确定一个部署到客户机器的唯一标识符;这个GUID可以通过VisualStudio工具栏中的功能自动创建;我们还差一步就成功完成了这么一个庞大的工程了,我们右击项目选择属性会出来下面这个界面:5:将为COM互操作注册勾选上,作用就是为了能与COM等组件进行相互调用了,在我们程序目录中会生成一个和组件名称一样的tlb文件,必须有这个文件我们才能使用这个插件,tlb文件是一个类型库文件,作用就是将托管DLL文件的所有信息导出成COM规范的接口文件,在这个tlb文件中定义了COM的调用约定;由于COM和.NET组件无法直接交互所以只能通过tlb文件来确定我们的托管的DLL文件中定义哪些东西;我们编译一下;我们还差一个HTML文件,这个文件随便是来自哪里都可以,这个HTML文件里面要定义调用我们这个ActiveX插件才行;6:我红色箭头标记的地方就是Object标记所定义的调用代码,ID就是为调用的ActiveX插件起的一个名字便于在页面中通过JS进行互操作;CLASSID是要调用的ActiveX插件在用户机器上的GUID唯一标识符;CODEBASE如果用户机器上没有安装这个插件则让浏览器帮忙下载的URL地址;其他的标记就是和普通的HTML一样的了;在此我穿插一下,所有的HTML标记最终都会被转换成实实在在的对象,而不是我们所谓的HTML纯文本;我们保存HTML文件,并且打开这个文件就能看见ActiveX插件被加载运行了;我这里之间简单的讲解了一下ActiveX插件的基本创建过程,其实ActiveX插件的功能很强大,对B/S一些的功能只能通过插件来解决如:大文件上传、视频采集、照片动态采集等等;插件在部署的时候一定要注意,部署到用户机器上的时候,在属性栏中有一个文件注册方式,一定要选择为COM注册这样才能在注册表中添加相应的节点;ActiveX插件开发大概就讲完了;希望讲的还算清晰明了;注意;设置用管理员权限运行VS即可。
使用C#开发ActiveX控件全攻略(1)先说说ActiveX的基本概念。
根据微软权威的软件开发指南MSDN(Microsoft Developer Network)的定义,ActiveX插件以前也叫做OLE控件或OCX控件,它是一些软件组件或对象,可以将其插入到WEB网页或其它应用程序中。
ActiveX是Microsoft对于一系列策略性面向对象程序技术和工具的称呼,其中主要的技术是组件对象模型(COM)。
在有目录和其它支持的网络中,COM变成了分布式COM(DCOM)。
在创建包括ActiveX 程序时,主要的工作就是组件,一个可以自足的在ActiveX网络(现在的网络主要包括Windows和Mac)中任意运行的程序。
这个组件就是ActiveX近控件。
ActiveX是Microsoft为抗衡Sun Microsystems 的JAVA技术而提出的,此控件的功能和JAVA applet功能类似。
目前支持ActiveX的主要是IE浏览器。
以前ActiveX开发普遍使用VC++或VB,随着C#和.net的发布,用C#开发ActiveX控件变得更方便、更简单。
但需要注意的是用C#开发的ActiveX控件需要客户机装有.net framework,有点郁闷。
可是相对.net强大的功能良好的易用性,这点牺牲还是值得的,况且现在好多计算机已经安装有.net framework了。
其实.net下的winform控件也是可以直接嵌入到web网页里的,但是由于.net安全性的限制,无法在客户端实现复杂的操作,比如磁盘空间操作和注册表操作。
因为ActiveX控件是以本地用户的身份运行,可以突破.net安全性的限制,所以开发ActiveX控件还是很必要的。
C#写ActiveX控件的原理很简单,就是使用了.net平台和COM的互操作性。
修改项目属性的目的就是将.net控件注册为com。
这样,你就可以把这个控件完全当作ActiveX控件来对待了。
VC++编写ActiveX控件ActiveX这门技术是通过生成“*.ocx”文件来实现的。
先来了解下OCX文件,在百度百科上面对OCX是这样解释的:“.ocx是ocx控件的扩展名,OCX 是对象类别扩充组件。
如果你用过Visual Basic或者Delphi一类的可视化编程工具,那么对控件这个概念一定不会陌生,就是那些工具条上的小按钮,如EditBox,Grid,ImageBox,Timer等等。
每个控件都有自己的事件、方法和属性。
使用了控件的编程非常容易。
首先,在程序的设计阶段可以设置一些属性,如大小,位置,标题(caption)等等;在程序运行阶段,可以更改这些属性,还可以针对不同的事件,调用不同的方法来实现对该控件的控制。
控件就好像一块块的积木,程序要做的事只是将这些积木搭起来。
控件的最大好处是可以重复使用,甚至可以在不同的编程语言之间使用,例如你可以在VB中嵌入用VC开发的控件。
”里面最后一句话比较重要,就是用VC开发的OCX控件,你可以在其它语言里面都能调用,这样很好的实现了功能化组件的良好循环使用,而且还可以实现跨语言地调用(例如,你完全可以用C#调用C++开发的OCX控件)。
下面开始介绍,如何用VC++一步步生成你想要的“*.ocx”文件。
1. 建立最简单的ocx文件并进行调试1.1 建立最简单的ocx文件VC->新建项目->MFC ActiveX WinZard一路点击“确定”,直到点击“完成”。
最后VC++会自动生成一些文件,这些文件就构成了ActiveX的基本模板,文件的主要结构如下:直接编译一下,然后在Debug目录下面就会生成一个名为“ocxDemo.ocx”的控件注册文件,然后利用“regsvr32”命令就可以实现本机对此控件的注册,然后就可以使用本语言或者跨语言编写程序时引用此控件来实现相应的功能(后面将会讲到)。
1.2 ocx调试方法:VC++自带有一个调试控件的工具“ActiveX控件测试容器”,通过三种方式可以打开:1.点击“调试”按钮,会出现如下对话框:然后浏览"C:\Program Files\Microsoft Visual Studio\Common\Tools\TSTCO N32.EXE“2. 系统的“开始“-》“程序”-》“Microsoft Visual C++ 6.0”-》“Microsoft Visual C++ 6.0 Tools”-》“Active Control Test Container”3. VC++开发环境中的“工具”-》“ActiveX Control Test Container”通过上面的任意一种方法,都可以调出下面的程序:右击空白区域,插入控件,然后会弹出下面的对话框:选中指定控件,然后点击确定,控件就被加载到此工具中了,然后可以通过这个工具来看此控件的相关事件响应等等。
前言ActiveX控件是一种实现了一系列特定接口而使其在使用和外观上更象一个控件的COM 组件。
ActiveX控件这种技术涉及到了几乎所有的COM和OLE的技术精华,如可链接对象、统一数据传输、OLE文档、属性页、永久存储以及OLE自动化等。
ActiveX控件作为基本的界面单元,必须拥有自己的属性和方法以适合不同特点的程序和向包容器程序提供功能服务,其属性和方法均由自动化服务的IDispatch接口来支持。
除了属性和方法外,ActiveX控件还具有区别于自动化服务的一种特性--事件。
事件指的是从控件发送给其包容程序的一种通知。
与窗口控件通过发送消息通知其拥有者类似,ActiveX控件是通过触发事件来通知其包容器的。
事件的触发通常是通过控件包容器提供的IDispatch接口来调用自动化对象的方法来实现的。
在设计ActiveX控件时就应当考虑控件可能会发生哪些事件以及包容器程序将会对其中的哪些事件感兴趣并将这些事件包含进来。
与自动化服务不同,ActiveX控件的方法、属性和事件均有自定义(custom)和库存(stock)两种不同的类型。
自定义的方法和属性也就是是普通的自动化方法和属性,自定义事件则是自己选取名字和Dispatch ID的事件。
而所谓的库存方法、属性和事件则是使用了ActiveX控件规定了名字和Dispatch ID的"标准"方法、属性和事件。
ActiveX控件可以使COM组件从外观和使用上能与普通的窗口控件一样,而且还提供了类似于设置Windows标准控件属性的属性页,使其能够在包容器程序的设计阶段对ActiveX控件的属性进行可视化设置。
ActiveX控件提供的这些功能使得对其的使用将是非常方便的。
本文下面即以MFC为工具对ActiveX控件的开发进行介绍。
建立工程框架通过"MFC ActiveX ControlWizard"向导可以非常容易的建立一个MFC ActiveX控件工程框架。
Delphi编写ActiveX控件(OCX控件)的知识和样例(有详细步骤)⼀、ActiveX应⽤情况简介:ActiveX控件也就是⼀般所说的OCX控件,它是 ActiveX技术的⼀部分。
ActiveX是微软公司推出的基于组件对象模型COM的技术,包括对Windows 32位应⽤编程接⼝(Win32 API)和组件对象模型的⼀系列扩充和增强,⽬标是把计算机桌⾯环境与因特⽹环境集成起来,同时保护在Windows技术中现有的开发投资。
微软的 ActiveX技术根本上就是修改过的OCX技术,使它能够跨越Internet,主要是使⽤WWW来传递控件。
ActiveX控件可以被集成到很多⽀持ActiveX的应⽤当中去,或者直接⽤来扩展应⽤的功能,这些⽀持ActiveX的应⽤包括C++ Builder、Delphi、Visual dBASE、 Visual Basic、Visual C++、Internet Explorer、Netscape Navigator等。
ActiveX控件还可以使⽤在因特⽹上,在⽹页上使⽤它来发布信息、处理与⽤户的交互,但是需要使⽤⽀持ActiveX的浏览器才能阅读这些⽹页。
⽬前已经开发出来的ActiveX控件越来越多,由于ActiveX控件具有很好的特性,我们可以在编程的时候选择使⽤合适的控件来加快⾃⼰的应⽤开发。
可以不夸张地说,ActiveX控件是Windows平台编程必不可少的法宝。
使⽤ActiveX控件是相对⽐较简单的。
但是,开发ActiveX控件并不是⼀件简单的事情,必须要熟悉⽽不只是了解ActiveX技术才能开发出好的ActiveX控件。
⽽COM、OLE等ActiveX技术对于⼀般的程序员来说,是⽐较复杂难懂的。
所以,ActiveX控件的开发者⼀般都是“⽼鸟”级别的程序员。
但是如果您有了Inprise公司的Borland Delphi,那⼜另当别论了。
Delphi作为Windows平台上最优秀的程序开发⼯具之⼀,为ActiveX控件的开发提供了强有⼒的⽀持,让您轻松地开发ActiveX控件。