zoukankan      html  css  js  c++  java
  • 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控件 -播放视频/音频

  • 相关阅读:
    android连接wifi模块
    idea 控制台乱码debug
    线程控制
    jvm 垃圾回收
    java 单例模式
    http报头
    java 构造函数 , 参数传递 , lamda表达式
    mysql 杂识
    spring mvc 配置 拦截器不起作用
    spring mvc 每次请求后是否自动销毁线程
  • 原文地址:https://www.cnblogs.com/zhouwanqiu/p/6919226.html
Copyright © 2011-2022 走看看