c# - 如何从 MFC 应用程序调用 .NET 窗体?

标签 c# .net c++ mfc

我们有几个大型 MFC 应用程序,它们当前调用 COM 对象来打开复杂的对话框。我们希望将对话框集成到应用程序中——我们不想继续使用 COM 对象。

我正在研究在 .NET 中将对话框构建为单独的项目(使用 Windows 窗体,而不是 WPF)的可能性,并提供第二个 C++/CLI 项目来调用它,并且可以从普通的 C++ 代码中调用它。这种结构使得需要合并对话框的多个应用程序可以只选择其解决方案中的项目。 (这些应用程序是遗留应用程序,不可能对它们进行广泛的重写——我们正在慢慢地将它们转移到.NET,但这是一个多年的项目。将应用程序转换为 C++/CLI 不是一个选择。)

我已经构建了这个并通过模型应用程序对其进行了测试,但到目前为止我无法让它在最简单的大型应用程序中工作,并且根据我读过的一些内容,我开始怀疑这是可能的。 (尤其请参阅 this link 。我知道 this Stackoverflow question ,但它似乎不相关。)

所以。这可能吗?关于如何继续的任何建议?

最佳答案

将 Windows 窗体控件封装在用户控件中,并使用 DDX_ManagedControl 将它们嵌入到 MFC 应用程序中:

http://msdn.microsoft.com/en-us/magazine/cc163605.aspx

关于c# - 如何从 MFC 应用程序调用 .NET 窗体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/711669/

相关文章:

c# - 使用 MVVM 在 UWP 中处理 ListView ItemClick 的最佳实践

c# - 如果底层 DataContext 为空,如何隐藏控件?

c# - $_FILES ['file' ] ['tmp_name' ] C# 中的等价物

.net - SharePoint 功能 : How can I use wildcard assembly versioning?

c# - MS UIAutomation 对文本没用吗?如何设置字体粗细、获取插入位置、插入文本等?

c++ - OpenGL - 使用片段着色器得到奇怪的结果

c++ - 为简单 vector 实现复制构造函数

c++ - 如何使用 windbg "dt"命令从命名空间污染的内存转储中获取信息

c# - ToolTip 保持显示

c# - 错误CS1955 : The member 'System.Collections.Generic.List<System.Action>.Count' cannot be used as a method or delegate