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

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

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


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

image

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

image

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

image

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

image

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

image

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

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

image

image

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

image

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

image

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

image

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

image

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

image

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

image

原文地址:https://www.cnblogs.com/anic/p/5016818.html