![]() |
1
3
我之前研究过这个类似的遗留应用程序,我从 WPF and Win32 Interoperation Overview 一起 host MFC class inherited from CWnd in WPF . 请参阅(并搜索) HwndHost Class 一起 Hosting a Simple Win32 Control in a WPF Application . 问题是它从来没有很好地工作过——我觉得它破坏了WPF应用程序,我无法让它在任何接近可靠的地方工作,所以我放弃了这种方法。 所以,我采取了不同的策略,将MFC应用程序重新构建为一个独立的“对话提供者”,它只包含所有的对话。这就完成了所有的对话工作,并将结果通知了WPF应用程序。这起作用并使应用程序能够向前移动。我也尝试过 Leveraging the .NET Framework Inside an MFC Application 但它最初并没有起作用,时间是关键。 最后的结果是一个用awk编写的Q&D转换器,它使用.rc、cpp和.h,并以可编辑的形式为每个对话框生成xaml&c。如果您已经使用类向导构建了您的MFC对话框,那么应该有一些有用的分隔符,在这个过程中非常有用。 有用分隔符示例:
|
![]() |
2
-2
如果您使用的是标准的公共对话框,那么只需使用WPF等价物,否则您可能必须在WPF中从头开始创建它们。或者使用在WPF窗口中显示对话框的Windows窗体宿主控件。 |