一、在向对话框插入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、接下来就可以调用对象中的函数了。