关于ActiveX控件的一些问题

来源:互联网 发布:最优化理论与算法 答案 编辑:程序博客网 时间:2024/05/16 08:10

一、在向对话框插入ActiveX控件时会弹出选择框,更改选择框中ActiveX控件名称

       在AciveX控件工程的.rc文件上右键查看代码,修改STRINGTABLE下面IDS_XXX 对应的字符串,重新编译注册即可。

二、添加接口

在类视图下的 XXXLib下的_DXXX 右键添加方法。这个过程中vs帮我们添加了以下几处代码:

1、在XXXCtrl.h中

1) 调度和事件 ID下的枚举结构下添加了dispidXXX =  id号 L

2)添加 Protected 类型函数(要用对象调用的话得改成public的)

2、在XXXCtrl.cpp中

1) 在调度映射的宏BEGIN_DISPATCH_MAP 和 END_DISPATCH_MAP之间,用宏DISP_FUNCTION_ID将外部接口名称和内部函数关联起来,有的地方用的是DISP_FUNCTION,前者需要指明id,即XXXCtrl.h中枚举结构下的id,而后者从1开始递增。

2)添加实现函数

3、在XXX.idl或者XXX.odl中

 在XXXCtrl 的主调度接口下的methods下添加[id(id号), helpstring("方法XXX")]  returntype XXX(param); 这里的id号和在XXXCtrl.h中的对应。

三、修改AcitveX classid

XXX.idl或XXX.odl中的类信息下面的uuid即ActiveX的classid,修改这里和XXXCtrl.cpp初始化类工厂和 guid下面的一串数字,编译注册即可。

四、去除测试对话框程序中的包含类

1、在工程里面选中按del键,从硬盘删除。

2、用记事本打开该工程目录下的.vcproj文件,在Globals标签下将代表控件的标签项删除。

五 、在测试程序中添加ActiveX对象

在对话框上右键插入ActiveX控件

方法一:右键控件,添加变量。

方法二:

1、关闭对话框,项目菜单添加类,选择并添加ActiveX控件中的MFC类;

2、在测试程序的.h文件中加入包含类的头文件,定义该类对象。在.cpp文件中的DoDataExchange中添加

DDX_Control(pDX, IDC_HELLOWORLDCTRL1, m_ocx);

IDC_HELLOWORLDCTRL1为控件id号,右键控件属性可以看到,m_ocx为你定义的对象,这两个名字都可任意起。

3、接下来就可以调用对象中的函数了。

0 0
原创粉丝点击