[英]How to replace/update an ActiveX control in a MFC dialog
我在VS 2003中有一個較舊的MFC項目,我希望將其移植到VS 2010.該項目使用ActiveX控件進行網格,即Component One的VSFlexGrid7。 問題是,這個版本的ActiveX控件在Windows 7中不起作用(這就是我所擁有的)。 有一個較新版本的網格,即VSFlexGrid8應該與Windows 7兼容。
解決方案是用新的控件替換所有舊控件。
我的問題是,更換控件的步驟是什么,而不涉及項目的其他部分。 實現這一目標的最簡單方法是什么? 我是否必須修改類,資源ID等?
[解決方案:替換.RC文件中的CLSID]
通常,使用CreateInstance在對話框代碼中的某處創建控件。 如果接口兼容(我認為是),您只需要更改CreateInstance代碼中使用的名稱或GUID。
ActiveX控件通過代表控件的guid綁定到資源文件。 如果您要查看.rc文件,您將看到帶有關聯guid的控件。 在您的情況下,最好從對話框中完全刪除控件(使用資源編輯器),假設您可以將較新的版本拖到同一個對話框中。 完成后,您需要為控件生成一個新的類包裝器。 類向導應該能夠為您處理。 一旦你有了一個代表控件的新類包裝器,你就需要在源代碼中替換先前的包裝器類。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.