vc6开发activex并发布全攻略(一)(初级篇)

来源:互联网 发布:福州青少年宫网络平台 编辑:程序博客网 时间:2024/05/08 19:06

最近空闲时间比较多,自己研究了下ActiveX的技术。前面转载了一篇用c#开发ActiveX的文章,照着做了下,成功了,但毕竟xp的用户比较多,系统没有自带.netFramework,所以c#开发的ActiveX还不能普及。所以想学下用vc++开发ActiveX控件。由于我现在开发用的是c#和java语言,对c++还很陌生,所以花了半天看了下c++语法,但收效甚微。凭着自己多年来利用Baidu和Google 的成功经验和自己屡败屡战的意志,终于磕磕绊绊的完成了一个简单的ActiveX,并能通过IE让用户下载安装。

先说下我的开发环境:

开发工具:vc6.0

操作系统:win2003

IE版本:IE7.0

 

做开发之前,在网上查了下vc开发activeX的资料,得知vc开发ActiveX可选两种框架,一种是ATL COM结构,还有一种是MFC结构。经过筛选,还是选择了MFC结构,因为这种方式开发比较普遍。那开发之前我们得先知道MFC到底是什么,这里我就不多讲了,去Baidu下,如果你看完以后没有理解,那很正常,因为我也没看懂,呵呵。

理论没看懂不要紧,但起码你得知道MFC程序是怎么开发的啊,经过Baidu找到一个MFC的例子,很经典,是内地一女程序员写的,写的比较经典,也很详细,照着她写的例子在VC6.0上写了一遍,收获不小。由于是女的写的,语句也比较女性化,所以我也不方便转载,这里贴出她的blog地址,强烈建议你去照着做一遍,因为我这篇文章不会讲MFC是什么,怎么实现(其实我到现在也没理解,呵呵):

http://sakura006.blog.hexun.com/31435400_d.html

那下面我们就开始VC开发ActiveX的旅程,不足之处还望高人指点,也请读者海涵:

一.打开vc6.0,新建一个MFC ActiveXControlWizard项目:  

vc6开发activex并发布全攻略(初级篇)(原创) - 一闪而过 - 一闪而过的博客

 

 

工程名称随便起,比如我的叫MyActiveX。点击确定,一路默认下一步,完成后生成的文件目录如下:

vc6开发activex并发布全攻略(初级篇)(原创) - 一闪而过 - 一闪而过的博客

 

生成的文件包括源文件夹,头文件夹和资源文件夹。还是那句话,想知道这些文件具体都是做什么的,去问下百度,我这里只讲步骤。

二.其实这个工程本身生成的就是一个ActiveX控件,它的功能是在页面上画个圆。那我们现在先查看下效果。直接点击F7,控制台显示编译成功,并生成MyActiveX.ocx文件。 

vc6开发activex并发布全攻略(初级篇)(原创) - 一闪而过 - 一闪而过的博客

我的这个工程目录是在E:\MyPro下,那生成的MyActiveX.ocx就在E:\MyPro\MyActiveX\Debug下:

vc6开发activex并发布全攻略(初级篇)(原创) - 一闪而过 - 一闪而过的博客

 

恩,就是那个万花丛中一行红的那个。

那我们看看运行效果。

点开vc的工具->ActiveX Control Test Container菜单,如果你的VC看不到这个选项,那你可能是安装了精简版:vc6开发activex并发布全攻略(初级篇)(原创) - 一闪而过 - 一闪而过的博客

 

弹出下面这个对话框:

vc6开发activex并发布全攻略(初级篇)(原创) - 一闪而过 - 一闪而过的博客

 

然后选择edit->Insert New Control选项弹出下面这个窗口:

vc6开发activex并发布全攻略(初级篇)(原创) - 一闪而过 - 一闪而过的博客 

 

 

然后选择edit->Insert New Control选项弹出下面这个窗口:

vc6开发activex并发布全攻略(初级篇)(原创) - 一闪而过 - 一闪而过的博客

 

在列表中我们可以看到MyActiveX这个我们刚刚生成的控件。选择OK,看看效果,一个圆:

vc6开发activex并发布全攻略(初级篇)(原创) - 一闪而过 - 一闪而过的博客

 

这个工具很好用,我们在activeX中的自定义方法在这个测试容器里测试:

选择Control->InvokeMethods选项:

vc6开发activex并发布全攻略(初级篇)(原创) - 一闪而过 - 一闪而过的博客

 

弹出下面的对话框:

vc6开发activex并发布全攻略(初级篇)(原创) - 一闪而过 - 一闪而过的博客

选择方法名,通过parmeter列表还可以设置方法的参数,设置好以后,点击Invoke就可以看到我们自定义方法的效果。如果只返回参数,那返回的结果就显示在Return文本框里。如果是弹出对话框,那将弹出你设计的对话框。现在方法中只有一个系统默认的弹出软件相关的一个对话框。看看:vc6开发activex并发布全攻略(初级篇)(原创) - 一闪而过 - 一闪而过的博客

 

 

三.下面我们就在activex中添加自定义方法。

     这个自定义方法很简单,就是增加一个test(short  a,short b)方法,返回a+b的值。也许某些高手看到这里会笑,这么简单的方法还好意思写啊。呵呵。没关系,毕竟这篇文章只是菜鸟之作,给入门者看的。

  选择左边工程目录的ClassView选择项(下图中红色方框里的),也就是显示类图:.下面我们就在activex中添加自定义方法。

     这个自定义方法很简单,就是增加一个test(short  a,short b)方法,返回a+b的值。也许某些高手看到这里会笑,这么简单的方法还好意思写啊。呵呵。没关系,毕竟这篇文章只是菜鸟之作,给入门者看的。

  选择左边工程目录的ClassView选择项(下图中红色方框里的),也就是显示类图:

vc6开发activex并发布全攻略(一)(初级篇)(原创) - 一闪而过 - 一闪而过的博客

 

然后选择菜单查看->建立类向导,弹出对话框:

vc6开发activex并发布全攻略(一)(初级篇)(原创) - 一闪而过 - 一闪而过的博客

vc6开发activex并发布全攻略(一)(初级篇)(原创) - 一闪而过 - 一闪而过的博客

 

选择上图中automation(自定义)标签页,ClassName选择CMyActivexCtr类,因为我们自定义的方法一般都是在Ctrl这个类文件中实现的。选择Add Method按钮,弹出对话框:

vc6开发activex并发布全攻略(一)(初级篇)(原创) - 一闪而过 - 一闪而过的博客

 

在External name填入我们的方法名。比如我的这个方法叫做test,有两个参数a和b,如下图:

vc6开发activex并发布全攻略(一)(初级篇)(原创) - 一闪而过 - 一闪而过的博客

 

点击确定:

vc6开发activex并发布全攻略(一)(初级篇)(原创) - 一闪而过 - 一闪而过的博客

 

继续确定,看看工程类列表有什么变化:

vc6开发activex并发布全攻略(一)(初级篇)(原创) - 一闪而过 - 一闪而过的博客

 

恩,多了两项:一个test的接口和一个test的实现类。

双击test实现类,也就是上面图中的第二个红框类,找到

short CMyActiveXCtrl::test(short a, short b)

{

       // TODO: Add your dispatch handler code here

       return 0;

}

方法,将它改为

short CMyActiveXCtrl::test(short a, short b)

{

       // TODO: Add your dispatch handler code here

       return a+b;

}

呵呵,只是将return 0该成了return a+b;

直接F7,

vc6开发activex并发布全攻略(一)(初级篇)(原创) - 一闪而过 - 一闪而过的博客

 

显示编译成功。

那现在再打开vc的工具->ActiveX Control Test Container菜单(参照前面的图)。选择MyActivex控件,然后再选择Control->InvokeMethods选项:

看看,在MethodName中多了一个test方法,而且有两个参数a,b

vc6开发activex并发布全攻略(一)(初级篇)(原创) - 一闪而过 - 一闪而过的博客

 

通过SetValue给a与b赋值。点击invoke在Return中就会显示结果,2+4=6:

vc6开发activex并发布全攻略(一)(初级篇)(原创) - 一闪而过 - 一闪而过的博客

 

那我们这个Activex就算做好了,在E:\MyPro\MyActiveX\Debug目录下的MyActiveX.ocx就是我们的成品。下面就进行发布工作。

在网上找了很多资料,费了很大劲才找到一个适合我们菜鸟级学习的博文。那我在下一篇中转载并做补充。因为在发布过程中出现了很多莫名奇妙的问题。这一篇只是我们漫长旅程的开始。

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 一岁宝宝长牙慢怎么办 一岁宝宝不喝水怎么办 七个月的宝宝咳嗽怎么办 怀孕七个月感冒了怎么办 苹果汁弄到白色衣服怎么办 宝宝大便干燥拉不出来怎么办 婴儿吃过青菜米粉呕吐怎么办 50天宝宝便秘5天怎么办 8个月婴幼儿便秘怎么办 1个月婴幼儿便秘怎么办 榨汁后的苹果渣怎么办 宝宝6个月后容易生病怎么办 婴儿头型睡偏了怎么办 6个月婴儿不吃奶怎么办 宝宝秋季腹泻反复发烧怎么办 纯甄过期一个月怎么办 四个月宝宝不吃奶瓶怎么办 四个月宝宝不吃奶粉怎么办 婴儿三四天不大便怎么办 婴儿几天不拉大便怎么办 新生儿6天不拉屎怎么办 孩子10天不大便怎么办 宝宝5天没拉屎怎么办 小孩4-5天不大便怎么办 三个月宝宝睡前哭闹厉害怎么办 新生儿抱着睡放下就醒怎么办 宝宝大运动发育迟缓怎么办 八个月宝宝不会爬怎么办 宝宝竖着抱早了怎么办 孕妇吃的水果少怎么办 6个月宝宝厌奶怎么办 5个月宝宝厌奶怎么办 11个月宝宝厌奶怎么办 母乳宝宝不喝奶粉怎么办 换奶粉不拉大便怎么办 宝宝和妈妈不亲怎么办 冬天榨果汁太凉怎么办 四个月宝宝拉水怎么办 婴儿吃奶吃撑了怎么办 1岁的宝宝腹泻怎么办 一岁宝宝老拉肚子怎么办