如何在MFC对话框中替换/更新ActiveX控件

时间:2013-10-01 12:46:52

标签: c++ visual-studio-2010 mfc activex

我在VS 2003中有一个较旧的MFC项目,我希望移植到VS 2010.该项目使用ActiveX控件进行网格,即Component One的VSFlexGrid7。问题是,这个版本的ActiveX控件在Windows 7中不起作用(这就是我所拥有的)。有一个较新版本的网格,即VSFlexGrid8应该与Windows 7兼容。

解决方案是用新的控件替换所有旧控件。

我的问题是,更换控件的步骤是什么,而不涉及项目的其他部分。实现这一目标的最简单方法是什么?我是否必须修改类,资源ID等?

[解决方案:替换.RC文件中的CLSID]

2 个答案:

答案 0 :(得分:1)

通常使用CreateInstance在对话框代码中的某处创建控件。 如果接口兼容(我认为是),您只需要更改CreateInstance代码中使用的名称或GUID。

答案 1 :(得分:1)

ActiveX控件通过代表控件的guid绑定到资源文件。如果您要查看.rc文件,您将看到带有关联guid的控件。在您的情况下,最好从对话框中完全删除控件(使用资源编辑器),假设您可以将较新的版本拖到同一个对话框中。完成后,您需要为控件生成一个新的类包装器。类向导应该能够为您处理。一旦你有了一个代表控件的新类包装器,你就需要替换源代码中的前一个包装类。