我有一个在 VS 2003 中构建的旧 MFC 项目,我想将其移植到 VS 2010。该项目使用 ActiveX 网格控件,即组件一中的 VSFlexGrid7。问题是,这个版本的 ActiveX 控件在 Windows 7(我有)中不起作用。有一个更新版本的网格,即 VSFlexGrid8,它应该与 Windows 7 兼容。
解决方案是将所有旧控件替换为较新的控件。
我的问题是,在不触及项目其他部分的情况下,替换控件的步骤是什么。完成此操作的最简单方法是什么?我是否必须修改类、资源 ID 等?
[解决方案:替换 .RC 文件中的 CLSID]
最佳答案
ActiveX 控件通过表示控件的 guid 绑定(bind)到资源文件。如果您要查看 .rc 文件内部,您将看到带有关联 guid 的控件。在您的情况下,假设您可以将较新版本拖到同一对话框中,最好从对话框中完全删除控件(使用资源编辑器)。完成后,您需要为控件生成一个新的类包装器。类向导应该能够为您处理。获得表示控件的新类包装器后,您需要替换源代码中的先前包装器类。
关于c++ - 如何替换/更新 MFC 对话框中的 ActiveX 控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19116553/