0

我有一个在 VS 2003 中构建的较旧的 MFC 项目,我想移植到 VS 2010。该项目对网格使用 ActiveX 控件,即组件一中的 VSFlexGrid7。问题是,这个版本的 ActiveX 控件在 Windows 7 中不起作用(这是我所拥有的)。有一个更新版本的网格,即 VSFlexGrid8,它应该与 Windows 7 兼容。

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

我的问题是,在不触及项目其他部分的情况下,更换控件的步骤是什么。完成此任务的最简单方法是什么?我是否必须修改类、资源 ID 等?

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

4

2 回答 2

1

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

于 2013-10-01T14:25:50.907 回答
1

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

于 2013-10-11T20:14:14.240 回答