MFC开发ActiveX控件的简介

一、ActiveX控件(COM组件的应用)

  1、什么是Active控件?

    基于COM组件技术的,使用与一般控件一样方便。与一般控件的区别:它可以被任何支持COM标准的计算机程序使用

  2、什么是COM组件?

    组件实现了某种功能的一些小的二进制文件,通过接口对外提供服务。

    一个项目有一个或多个exe文件+一个或多个组件,组件与组件之间通过接口交互,有更好的复用性和可维护性

  3、什么是接口?

    C语言--接口就是函数

    C++语言--接口就是公有的成员函数

    COM组件--接口就是一组纯虚函数的集合(纯虚类),因为纯虚函数只有声明没有实现,所以接口是稳定的

二、ActiveX控件的开发、注册、测试、使用

  1、了解微软提供的ActiveX控件的测试工具

    ActiveX Control Test Container

    ActiveX控件的开发测试包括控件的属性、方法、事件

    在实际工作中一般使用WTL开发ActiveX控件

  2、使用MFC向导开发ActiveX控件

    2.1向导生成的接口和类的介绍

      第一个接口--添加属性和方法的

      第二个接口--添加事件的

      App--应用程序类

      Ctrl--控件类,包含了各种属性、方法和事件的实现。另外,控件的外观在OnDraw()函数中完成。

      PropertyPage--属性页类,添加控件的属性设置

    2.2实现

      1--通过第一个接口右击添加一个方法

        void SetNumber(int m_num1,int m_num2);

        并在Ctrl类的SetNumber中实现该方法。

      2--通过第一个接口右击添加一个属性

        BOOL Direction;

        自动在Ctrl类中添加一个成员变量m_direction和一个通知函数OnDirectionChanged(),需要在该函数内部完成代码编写。

      3--通过第二个接口右击添加事件

        事件分:库存事件、用户自定义事件;库存事件是自动通知的,但是用户自定义事件需要手动通知。

  3、控件注册

    3.1在MFC向导环境下,控件编译生成后自动注册

    3.2微软提供了一个用于注册控件的工具 regsvr32.exe ,在运行框中输入:

      regsvr32 "组件所在的文件路径"  --注册控件

      regsvr32 /u "组件所在的文件路径"  --卸载组件

  4、控件的使用

    4.1在MFC的窗口程序中使用控件

      方法一:

        1--在窗口中右击,选择插入ActiveX控件

        2--使用类向导为控件绑定成员变量,在绑定时会提示添加控件包装类,确认添加即可

        3--可以像使用一般控件一样使用ActiveX控件了

      方法二:

        1--菜单栏:工程(P)->增加到工程->Components and Controls...

        2--文件夹Registered ActiveX Controls中寻找要插入的控件,选中控件Insert->OK

        3--在资源视图的控件菜单最下方会增加插入的控件,拖入即可;或者使用其Create函数创建

        4--可以像使用一般控件一样使用ActiveX控件了

    4.2在html页面中使用控件

      查看获取控件的ID:控件的第一个接口里找类似:

        [ uuid(7AAEEBAB-CE07-482F-AA45-667E3D0CE618),helpstring("ActiveXMcd Control"), control ]

        coclass ActiveXMcd

      uuid()中对应的即为控件ID

三、COM组件的数据类型

  1、BSTR -字符串类型

    自定义使用步骤:

      1.1创建  SysAllocString

      1.2使用

      1.3释放  SysFreeString

 

    微软ATL库对BSTR的封装类-- CComBSTR

    (推荐使用)标准C++库对BSTR的封装类-- _bstr_t  需包含头文件#include <comdef.h>

  2、VARIANT -可变类型

    是一个结构体,包括枚举类型的成员(数据类型)和联合类型的成员(数值)

    微软ATL库对VARIANT的封装类-- CComVariant

    (推荐使用)标准C++库对VARIANT的封装类-- _variant_t

四、常用的ActiveX控件

  1、DataGrid控件 -表格控件,常用于显示数据库的数据

  2、MS Comm控件 -串口通信控件

  3、Windows Media Player控件 -播放视频/音频

 

posted @ 2017-05-29 22:35  Autumn_n  阅读(450)  评论(0编辑  收藏  举报
TOP