Некоторое время назад я изучал подобное унаследованное приложение, я начал с Обзор взаимодействия WPF и Win32 вместе с классом хоста MFC, унаследованным от CWnd в WPF . См. (И найдите) HwndHost Class вместе с Размещение простого элемента управления Win32 в приложении WPF .
Проблема заключалась в том, что оно никогда не работало хорошо - я чувствовал, что оно скомпрометировало приложение WPF, и я не мог заставить его работать достаточно надежно, поэтому я отказался от этого подхода.
Итак, взяв другую тактику, я перестроил приложение MFC в качестве автономного «поставщика диалогов», в котором только что были все диалоговые окна. Он просто выполнил всю диалоговую работу и уведомил приложение WPF о результатах. Это сработало и позволило приложению двигаться вперед. Я также попробовал Использование .NET Framework внутри приложения MFC , но изначально оно не работало, и время имело существенное значение.
Окончательным результатом стал преобразователь вопросов и ответов, написанный на AWK, который взял .rc, .cpp и .h и создал XAML & C # для каждого диалога в форме, готовой для редактирования. Если вы построили свои диалоги MFC с помощью мастера классов, тогда должны быть полезные разделители, которые были бы очень полезны в этом процессе.
Пример полезного разделителя:
//{{AFX_DATA_INIT(CDialogFileProperties)