簡體   English   中英

如何在MFC對話框中替換/更新ActiveX控件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM