开发ActiveX控件调用另一个ActiveX系列3——ActiveX调用另一个ActiveX

终于进入正题了,怎样在ActiveX中调用另一个ActiveX。我们的项目需要调用华视电子身份证识别仪的ActiveX控件

在这里有很多识别仪ActiveX插件下载:http://www.idukaqi.com/service/huashi/

先在资源页面中,添加一个Dialog资源

开发ActiveX控件调用另一个ActiveX系列3——ActiveX调用另一个ActiveX_第1张图片

打开新建的对话框资源,不用纠结他长什么样子(因为它不会被显示)。在工具箱试图中,点击右键->选择项

开发ActiveX控件调用另一个ActiveX系列3——ActiveX调用另一个ActiveX_第2张图片

在COM组件中找到我们需要调用的ActiveX,可以通过路径确认是否我们需要的。(要调用别的ActiveX,那一定要注册到注册表中。)

开发ActiveX控件调用另一个ActiveX系列3——ActiveX调用另一个ActiveX_第3张图片

然后点击确定后,在对话框中绘制出来

开发ActiveX控件调用另一个ActiveX系列3——ActiveX调用另一个ActiveX_第4张图片

 

也许说在对话框中右键也可以添加ActiveX控件,但是是无法看到路径的,所以这里不推荐这种方法。

开发ActiveX控件调用另一个ActiveX系列3——ActiveX调用另一个ActiveX_第5张图片

 

给这个新建的对话框资源一个对应的类

在对话框上右键->添加类

开发ActiveX控件调用另一个ActiveX系列3——ActiveX调用另一个ActiveX_第6张图片

 

开发ActiveX控件调用另一个ActiveX系列3——ActiveX调用另一个ActiveX_第7张图片

然后选中对话框上的ActiveX控件,右键->添加变量

开发ActiveX控件调用另一个ActiveX系列3——ActiveX调用另一个ActiveX_第8张图片

VS自然会生成一个类CIdcardreaderctrl1,我们输入变量名,选择public

在ActiveXTestCtrl.h中增加一个CMyDialog 成员

开发ActiveX控件调用另一个ActiveX系列3——ActiveX调用另一个ActiveX_第9张图片

在构造函数中用Create方法初始化,但是不需要显示。在此之前还要加一句AfxEnableControlContainer表示启用ActiveX控件

开发ActiveX控件调用另一个ActiveX系列3——ActiveX调用另一个ActiveX_第10张图片

然后在ReadCard和GetName中调用ActiveX中的对应方法

 

编译后,用系列中的测试页.html测试是否可以读出身份证识别仪上的信息。(其他显示undefined是因为我的ActiveX控件里面还没实现这些方法)

你可能感兴趣的:(开发ActiveX控件调用另一个ActiveX系列3——ActiveX调用另一个ActiveX)