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控件 -播放视频/音频

  • 相关阅读:
    图片上传-下载-删除等图片管理的若干经验总结3-单一业务场景的完整解决方案
    图片上传-下载-删除等图片管理的若干经验总结2
    HDU 1195 Open the Lock
    HDU 1690 Bus System
    HDU 2647 Reward
    HDU 2680 Choose the best route
    HDU 1596 find the safest road
    POJ 1904 King's Quest
    CDOJ 889 Battle for Silver
    CDOJ 888 Absurdistan Roads
  • 原文地址:https://www.cnblogs.com/zhouwanqiu/p/6919226.html
Copyright © 2011-2022 走看看