OCX控件制作

VC++编写ActiveX控件 
出处:多特软件站  时间:2011-06-29  人气:1858我要提问我来说两句 
核心提示:ActiveX这门技术是通过生成“*.ocx”文件来实现的。先来了解下OCX文件,在百度百科上面对OCX是这样解释的 
  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\TSTCON32.EXE“ 
  2. 系统的“开始“-》“程序”-》“Microsoft Visual C++ 6.0”-》“Microsoft Visual C++ 6.0 Tools”-》“Active Control Test Container” 
  3. VC++开发环境中的“工具”-》“ActiveX Control Test Container”   通过上面的任意一种方法,都可以调出下面的程序: 












 
  右击空白区域,插入控件,然后会弹出下面的对话框: 
 
  选中指定控件,然后点击确定,控件就被加载到此工具中了,然后可以通过这个工具来看此控件的相关事件响应等等。 
 
2.自VC++生成的模板基础上自定义功能 
  所有的自定义功能基本上都来自于“MFC ClassWizard”类向导对话框。   (“快捷键Ctrl+W”或者“查看”->“建立类向导„”) 












 
  在“Automation”选项卡中为控件添加方法和属性。   在“ActiveX Events”选项卡中为控件添加事件。   2.1 添加控件属性 
  切换到“Automation”选项卡中,点击右边的“Add Property„”会弹出对话框: 
 
  External name:外部名称。指此控件被使用时,外部程序看到的属性名称,仅在外部引用时被使用。 
  Type:属性类型。除了基本的整形等数据类型外,还有很多复杂的高级数据类型。   Variable name:变量名称。此属性在控件源文件中的变量名称,在编写控件源码时使用。 
  Notification function:提醒函数。当此属性被改变时,会触发此提醒函数。 












  Implementation:实现方式。指属性的三种类型:固有型,成员变量型,Get/Set方法型。固有型是指系统赋予的固有属性,如背景色,标题;成员变量型是用户自定义的属性;Get/Set方法型,可能是指只能通过Get/Set方法才能获取和改变的变量吧(这个没研究)。   2.2 添加控件方法 
  在“Automation”选项卡中,点击右边的“Add Method„”会弹出对话框: 
 
  External name:方法外部名称。   Internal name:方法内部名称。 
  Return type:返回值类型。除了基本的整形等数据类型外,还有很多复杂的高级数据类型。 
  Implementation:实现方式。两种:固有方法,自定义方法。 
  Parameter list:参数列表。参数名称和参数类型:参数类型包含很多高级数据类型。   2.3 添加控件事件 
  切换到“ActiveX Events”选项卡中,点击右边的“Add Event„”会弹出对话框: 
 



































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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值