vc2010 引用ActiveX控件(转)

原文链接: https://blog.csdn.net/dreamer323/article/details/7998175

最近在编一个小程序,需要用到第三方的ActiveX控件,我就以“VC2010 引用ActiveX控件”为关键字在网上查找方法,结果搜索到的基本都是教你怎么在vc6.0中使用ActiveX控件的,我们知道在vc6.0中调用很简单,只要在菜单中,project->Add to Project->Components and Controls->Registered ActiveX Controls,选择相应的控件加入当前工程,系统就会自动生成此控件所有接口的包装类。而在VC2010中略有不同,假设你是建立一个基于对话框的MFC工程,那么可以在对话框窗口内右键->插入ActiveX控件,然后在弹出的ActiveX控件列表中选择你要的那个控件,当然这个控件是要预先在系统中注册过了,否则在列表中是找不到的。插入控件以后,问题就出现了,你会发现系统不会像vc6.0那样自动生成此控件所有接口的包装类,这就意味着要使用这个控件你还要多做一些事情,这不免让人觉得vc6.0怎么比vc2010更加智能!那么,要多做的事情是什么呢?无非就是把控件接口的包装类导进来,一开始我是在解决方案视中,选中项目->右键添加类->在弹出的列表框中选择ActiveX控件中的MFC类->在弹出的类向导中找到要用的控件->生成类,结果发现生成的包装类中,只有方法,没有属性,也就是说这样生成的包装类并不完整。接下来我又尝试其他途径,都没有解决问题。在濒临奔溃的时候决定再次求助于万能的互联网。无意中在某个论坛有人说在vc2010中插入ActiveX控件后,不用手动添加其包装类了,只要为此控件添加变量,系统就会自动生成其包装类。我怀着半信半疑的心情试了一下,结果又悲剧了,系统除了给我添加了一个变量,啥都没有生成。在万念俱灰的时候,我决定启用屡试不爽的老方法:重新建立一个工程。然后插入控件,给它添加一个变量,结果老方法又再一次神奇般的救了我,这次系统竟然自动生成了完整的包装类!!!这不科学啊!!!明明是相同的步骤,怎么会是不一样的结果呢?难道真的因为一个是被修改过N次的旧程序,一个是新建的程序吗?!我决定一探究竟,我又新建了一个工程,插入控件,添加变量,然后又很蛋疼的把生成的相应的.cpp和.h删掉,然后再尝试给控件添加变量,此时可以发现系统并没有再次自动生成控件的包装类了,就算我把此控件删掉,重新插入控件、添加变量也没有生成对应的类,这让我很无奈。不知道vc是不是不喜欢修改过的程序,还是其中的一些动作破坏了系统的智能程序。所以,在vc2010中引用ActiveX控件的步骤可以归结如下:

1、新建一个基于对话框的MFC应用程序。

2、在对话框内右键-》插入ActiveX控件。

3、在控件上右键-》添加变量。

在添加变量的同时,如果能同时生成对应的cpp文件和h文件,那么说明调用成功了,如果不是,那就再看看上面的文字,重新来过吧。
————————————————
版权声明:本文为CSDN博主「dreamer323」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/dreamer323/article/details/7998175

你可能感兴趣的:(vc编程)