activex控件是什么?activex控件 卸载?activex怎么取消?VC++编写ActiveX控件(3)

电脑杂谈  发布时间:2016-07-03 02:01:01  来源:网络整理

在“Automation”选项卡中,点击右边的“Add Method…”会弹出对话框:

clip_image020

External name:方法外部名称。

Internal name:方法内部名称。

Return type:返回值类型。除了基本的整形等数据类型外,还有很多复杂的高级数据类型。

Implementation:实现方式。两种:固有方法,自定义方法。

Parameter list:参数列表。参数名称和参数类型:参数类型包含很多高级数据类型。

2.3 添加控件事件

切换到“ActiveX Events”选项卡中,点击右边的“Add Event…”会弹出对话框:

clip_image022

External name:事件外部名称。

Internal name:事件内部名称。比外部名称多了个前缀“Fire”。

Implementation:实现方式。两种:固有事件,自定义事件。固有事件一般是鼠标移动,双击等等事件,这些事件都由系统消息触发;自定义事件则是完全由用户定义的一个函数,但这个函数需要用户在源文件中调用(在内部调用,对于控件的使用方来说,就相当于在调用的地方此事件被触发,而内部传入的参数,则是此事件产生的消息附带信息)。

Parameter list:参数列表。参数名称和参数类型:参数类型包含很多高级数据类型。

总述:通过“类向导”工具,为控件添加属性、方法和事件后,VC++会自动在相应的文件里面生成代码,比如内部方法属性和外部方法属性之间的映射,消息的建立,消息的声明,等等。如果用户要对引进行深入研究,还需要对程序的结构比较熟悉,知道各部分代码的作用,知道哪些地方的代码是系统自动生成的,哪些代码需要用户手动加入的。Visual C++开发环境虽然有很多优点,但有个缺点也很明显,就是代码结构比较乱,感觉没有VS2005和后面的Visual Studio系列要好。但是由于VC6.0作为一个比较经典的开发环境,而且网上的有关C++的程序设计基本上都是基于VC6.0的,所以,有必要对其进行学习,便于自己读懂网上的代码并进行消化吸收。

2.4 生成ocx文件并调试

直接编译用户加入了自定义代码的项目,然后在项目的Debug目录下面会生成一个ocx文件,这个就是此控件的注册文件了。

控件的调试工具仍然是“ActiveX Control Test Container”。

假设我们在控件中加入了一个事件:固有事件——“MouseMove”鼠标移动事件;用户自定义事件——ocxClick事件(此事件是通过“WM_MOUSEMOVE”消息来触发的,返回的是鼠标当前位置的x坐标)。

运行“ActiveX Control Test Container”并插入当前控件,当鼠标在上面移动的时候,可以看到MouseMove产生了事件了。

clip_image024

同时可以通过“Control”-》“Invoke Method”来对控件的方法进行测试,测试的方法就是你输入参数,它返回计算结果(下面以自定义的方法funHello为例)。

clip_image026

3.控件的使用方法

3.1 注册控件

ocx控件的安装方式有很多种,这里介绍最简单的一种。

步骤:

1.将需要安装的OCX控件文件复制到某个目录,例如C盘根目录下。

2.进入开始,点击运行。

3.在出现的框中键入regsvr32 C:/xxxx.ocx 。(XXXX为控件名, C:/为目录)

4.点击确认后等待出现提醒注册成功即可。

3.2 ActiveX控件的调用

ActiveX作为一种通用的COM组件,可以被不同语言调用的。

3.2.1 通过VC++调用

利用VC6.0建立一个MFC的基本对话框应用程序

clip_image028

在完成程序向导后。执行下面的步骤:

1. 执行“工程”-》“添加到工程”--》“Components and Controls…”。

2. 在弹出的文件浏览对话框中,找到Registered ActiveX Controls文件目录下的你刚才注册的控件,比如“OcxDemo Control”,然后点击“Insert”按钮即可将此控件添加到控件工具条集合中。

3. 将控件工具条上新增加的OCX控件拖入到应用程序主窗口中。


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/ruanjian/article-11759-3.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...