【问题标题】:Using CWinFormControl from an ActiveX Control从 ActiveX 控件使用 CWinFormControl
【发布时间】:2012-01-18 18:07:32
【问题描述】:

我正在尝试在 ActiveX 控件(已启用 MFC/C++/CLR)中托管托管控件 (C#/.Net)。

我已经能够从基于 MFC 视图的应用程序中成功使用 CWinFormsControl,但我还没有弄清楚如何在 ActiveX 控件中托管一个。 ActiveX 控件已启用 CLR。我们正在尝试这样做,因为我们有一个需要使用第三方托管控件的遗留 MFC 应用程序,我们必须将它托管在我们自己的 ActiveX 控件中,然后托管在我们的应用程序中。说来话长,但这就是它必须的工作方式。

任何指针?

【问题讨论】:

    标签: .net c++ mfc activex


    【解决方案1】:

    您需要研究 COM 和 .NET 之间的互操作性。据我所知,您可以首先让您的 .NET 组件 COM 对您的 ActiveX 控件可见。之后,您的 .NET 组件将充当另一个 COM 组件。

    这是一篇关于互操作的文章。我相信你需要read Part II

    【讨论】:

    • 这个答案很好。绝对让 .NET COM 互操作层在这里为您完成工作。不过,您的场景听起来过于复杂。也许有一种方法可以在这里摆脱事物之间的一些层次......? (或者可能不是。)希望将 .NET 实体视为 ActiveX 控件可以让您更轻松地将其嵌入现有的 ActiveX 控件中。包含其他控件的控件一直具有挑战性。像这样混合模型有时真的会让你陷入思维结...
    • 事实证明,我没有注意到 X 和 Y 的 CREATESTRUCT 参数为 -32000,这导致控件在空间中被取消。它一直在那里,我只是看不到它。抱歉让大家大惊小怪。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多