MFC的ActiveX控件 - 1

转自:https://blog.csdn.net/babykangaroo/article/details/45795079

本文是入门学习ActiveX的学习笔记,属于系统学习整个框架部分,具体细节自己写代码时再深入。学习参考书籍是《MFC Windows程序设计(第二版)》,使用开发环境是VS2010。总共分为三部分:

    1: ActiveX控件基础;

    2:创建ActiveX控件;

    3:在应用程序中使用ActiveX控件;

第一部分 ActiveX控件基础

一、基本概念

    ActiveX控件是一个COM对象,它是实现了某些接口而使自己的外观和行为变得类似于控件的COM对象。它具有属性、方法和事件,分别解释这三项。

    1:属性。指控件的一些参数,如背景颜色等。在设计ActiveX控件时,要预见到所有用户能修改的控件外观或行为,并使它们成为控件的特性,可以通过编程公开这些属性。我理解是类似于C++类里的成员变量。

    2:方法。调用它们执行有用的工作。我理解类似于C++类里的成员函数。

    3:事件。指从控件发给容器的通知。“容器”指拥有ActiveX控件的窗口。窗口控件通过发送消息给它们的所有者发出通知,而ActiveX控件通过激发事件给它们的容器发送通知。当设计ActiveX控件时,就应该考虑容器可能会对哪些发生在控件里的事情感兴趣,并把它们设计为ActiveX事件。

    属性、方法和事件分为自定义型和备用型。

    自定义型指自己定义的,可以自定义它们的名字,并分配调度ID。

    备用型指使用ActiveX控件规范中已经定义过的、指定的名称和调度ID。

    ActiveX具有活动和不活动两种状态。

    综上所述,ActiveX控件定义如下:

    ActiveX控件是一种在窗口中控件,是COM对象,它支持方法、属性以及事件,在应用程序和web网页上都可以使用它们。

二、ActiveX控件容器

    也是一个复杂的COM对象。具体先不讨论。

三、环境

    使用MFC,因为MFC简化了ActiveX控件和控件容器的编写,提供了所要求的COM接口的实现,封装了连接ActiveX控件和控件容器的协议。也就是说,MFC已经做了大部分的工作。

第二部分 创建ActiveX控件

    我看的这本书籍例程都是VC++6.0环境下开发的,但是现在使用的是VS2010,有挺大的差别,所以在这里把使用VS2010创建ActiveX控件的过程中贴图出来。大致有四大步。

一、创建MFC ActiveX Control工程

step1:


 step2:点击OK,Next;


step3:Run-time License是指是否需要许可权来使用控件。


step4:默认Next就可以了。


step5: 点击“Finish”。


二、给控件添加属性

打开类视图。


三、给控件添加方法


四、添加事件


    以上只是演示属性、方法和事件在VS2010里是在哪里添加的。

    做完以上之后,编译,会得到一个几乎没有任何功能的ActiveX控件。这时候需要测试ActiveX是否能正常使用。VC自带一个测试工具,ActiveX Control Test Container。VC6.0中在Tools菜单下就可以找到:TstCon。但是VS2010下没有,需要自己添上去。http://m.blog.csdn.net/blog/u014028070/38341147这个网址讲的很好。

    如何单步调试ActiveX控件呢?在VS2010中,选中工程名--右键--properties--Debugging--Command,将TstCon.exe路径添加进去,确定。回到工程,在需要调试的地方打上断点,F5即可运行调试。

第三部分 在MFC应用程序中使用ActiveX控件

    1、注册控件。

    由于ActiveX是一个COM对象,所以使用时需要注册。在使用VC创建ActiveX控件时,作为处理过程的一部分,控件会被自动注册。但是要是控件提供给别人,就需要注册。注册有两种方法。

    一是提供一个安装程序,通过程序自动注册。二是使用Regsvr32实用程序。

    Regsvr32 XXXX.ocx  注册

    Regsvr32 \u XXXX.ocx 反注册

    2、创建一个MFC 对话框程序。然后将ActiveX控件插入。在工具箱里右键弹出以下,然后选择Choose Items。



将MyActiveX打勾,OK。在工具箱里就可以看到ocx控件了。然后像添加其他控件一样拖拽到对话框上即可。


或者也可以在需要插入控件的地方点击右键,弹出,选择自己创建的控件即可。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值