2011-12-12 74 views
1

我想舉辦一個管理控制(C#/。NET)的ActiveX控件中使用CWinFormControl(MFC/C++/CLR啓用。)從一個ActiveX控件

我已經能夠成功地使用CWinFormsControl從基於MFC視圖的應用程序,但我還沒有想出如何在ActiveX控件中託管一個。 ActiveX控件已啓用CLR。我們正在嘗試這樣做,因爲我們有一個遺留的MFC應用程序需要使用第三方託管控件,我們必須將其託管在我們自己的ActiveX控件中,然後託管在我們的應用程序中。長話短說,但這是它必須如何工作。

任何指針?

回答

2

您需要研究COM和.NET之間的互操作。據我記得,你可以開始讓你的ActiveX控件的.NET組件COM可見。之後,.NET組件將作爲另一個COM組件。

這是一篇關於interop的文章。我相信你需要read Part II

+0

這個答案很好。絕對讓.NET COM互操作層在這裏爲你完成工作。不過,您的場景聽起來過於複雜。也許有辦法擺脫這裏的東西之間的一些層...? (或者也許不是)。希望將.NET實體作爲ActiveX控件處理,可以更容易地嵌入到現有的ActiveX控件中。包含其他控件的控件一直都很具有挑戰性。像這樣混合模型可以真正地扭轉你的思維結... – DLRdave

+0

事實證明,我沒有注意到我的CREATESTRUCT params X和Y在-32000,導致控制在空間中被拉出。它一直在那裏,我只是看不到它。對不起,大驚小怪。 –