# 一、ActiveX简介
# 1.1ActiveX是什么
ActiveX是一种基于窗口的、独立于语言的技术,允许用户快速开发定制应用程序
- 可用于桌面也可用于网络
- 是封装、跨平台和重用技术的延申
ActiveX技术能让Web像桌面程序一样与其他软件交互,如让Web与其他软件通过TCP/UDP方式通信
ActiveX让Web与串口进行通信
# 1.2应用领域
随着软件技术的发展,程序的开放性、可重用性与封装变得越来越重要,而ActiveX是提高程序的开放性、可重用性和封装性的重要手段,现在ActiveX已经应用于数据管理、图形显示、用户界面、界面加密与接口封装等
总的来说,ActiveX是对某些技术的一种封装以供调用
由于其具有兼容的统一接口,可以给C++、Delphi、C#、MATLAB等语言调用
# 1.3ActiveX分类
- 按运行方式分:
可分为进程内与进程外服务器,进程内是指ActiveX与包容器同一个进程一般以DLL形式发行,进程外是指与包容器不同一个进程,其以独立方式运行,一般以exe文件方式发行。
按运行地点分:
可分为本地服务器与远程服务器,本地是指ActiveX与包容器同一计算机运行,远程服务器那就是不同一计算机上运行。
# 1.4性能机制
(1)属性和方法:ActiveX控件必须提供属性的名称、方法的名称及参数。通过这项机制,容器可以存取和改变ActiveX控件的属性参数
(2)事件:ActiveX控件由事件机制通知容器在ActiveX控件中发生的时间。比如属性参数的改变,用户按下了鼠标左键等等
(3)存储:容器由存储机制通知ActiveX控件存储和提取有关信息数据等等
# 二、COM规范
COM是种规范,叫组件对象模型,以组件为发布单元的对象模型,规范提供了统一的方式进行交互,不依赖于任何语文,也是不同语文之类协作开发的一种标准。
COM的主要思想是把一个大项目切成N小块,每个小块可以由不同的团队,不语言开发只要各个模块遵循COM规范就可协同工作。这样灵活化、升级方便、问题快速定位开发自由化。
# 三、MATLAB中使用ActiveX控件
# 3.1引入
提供图形用户界面(GUI,Graphical User Interface)的应用程序能够使用户的学习和使用更为方便和容易。
ActiveX控件只要在Windows和Registry数据库中注册后,用户可以像使用Windows通用控件一样,把用户自己创建或第三方提供的ActiveX控件插入到某个应用程序中以实现自己的特殊要求。就可以像其他Windows应用程 序一样发挥各自的功能。
# 3.2外部调用ActiveX控件
首先值得注意的是:每一个ActiveX控件都有一个其所对应的ProgID(Programmatic Identifier),也就是ActiveX控件的编程标识
# 3.2.1查询ActiveX控件progID
在使用MATLAB GUI进行对ActiveX控件的调用时可以使用其内置方法对整个计算机(Windows系统)中已经注册的ActiveX空间进行查看
(1)在MATLAB命令行中输入命令
>> guide
(2)弹出新建GUIDE窗口选择Blank GUI(defualt)
并点击确认
(3)获得一个GUI的创建界面,左侧工具中可以找到ActiveX控件
按钮并点击查看
(4)等待设备读取即可展示所有计算机内已注册并可使用的ActiveX控件,右下角即可查询所选控件的ProgID(Program ID)
# 3.2.2ActiveX对象创建及调用
若使用ActiveX对象,需要创建对象并获取关于它的信息(属性、方法和事件)
(1)创建ActiveX实例
h = actxcontrol('progid', position, fig_handle)
(2)获取有关ActiveX方法的信息
命令行键入或在.m文件中写入
>> h.methods
(3)获取有关ActiveX属性的信息
命令行键入或在.m文件中写入
% 查询属性列表
>> get(h)
% 查询某一属性的值
>> get(h, ‘PropertyName’)
(4)获取有关ActiveX事件的信息
命令行键入或在.m文件中写入
>> h.events
(5)ActiveX方法使用
执行或调用ActiveX方法
若要查看ActiveX对象支持哪些方法,可以使用methodsview
、methods
或invoke
命令
h.methods(‘-full’)
可以使用methodsview
命令打开一个包含所有方法的新窗口
methodsview(h)
# 3.3调用ActiveX方法
若要调用ActiveX对象方法,需要使用语法
outputvalue = object.methodname(‘arg1’, ’arg2’, …);
其中参数arg1,arg2等参数在帮助文档中定义
# 3.4使用ActiveX事件
事件通常是用户发起的动作,在动作完成时发生。例如,用鼠标点击按钮会触发“鼠标点击”事件。事件处理程序将在事件触发后执行。