2011-12-12 62 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,导致控制在空间中被拉出。它一直在那里,我只是看不到它。对不起,大惊小怪。 –