C++/CLI 인터페이스 레이어를 사용하여 기존 C++ MFC 응용 프로그램에 C# WPF 대화 상자를 추가하고 있습니다. 나는 모달에 문제가있는 것을 제외하고는 일을하고있다. 예 :MFC 및 WPF 믹싱 : 모달 대화 상자
- MFC 앱은 ShowDialog를 사용하여 WPF 대화 상자를 보여줍니다. 예상대로 작동합니다.
- 그 WPF 대화 상자는 DoModal을 사용하여 MFC 대화 상자를 표시합니다. WPF 대화 상자는 기본 C++ 응용 프로그램 뒤에 숨겨져 있으며 수동으로 IsEnabled를 변경하지 않으면 비활성화되지 않습니다. 이상적은 아니지만 작동합니다.
- 이제 MFC 대화 상자가 닫힙니다. 이제는 어떤 이유로 MFC 응용 프로그램이 활성화되어 있습니다. WPF 대화 상자가 닫히지 않아서 여전히 비활성화되어 있어야합니다. WPF 대화 상자가 아직 열려있을 때 사용자가 미친 짓을 할 수있게되어 나쁘다.
부모 대화 상자를 올바르게 설정할 수 있다면 좋을 것이라고 생각합니다. 그러나 지금까지는 MFC 대화 상자의 부모를 WPF 대화 상자로 설정하거나 그 반대로 설정할 수 없었습니다. 그리고 그게 고칠 수 있을지조차 모르겠다.
아이디어가 있으십니까?
아니요. HwndSource를 사용하면 MFC/Win32 Window에 WPF 컨트롤을 포함하고자 할 때만 필요하다는 것을 알았습니다. 그것은 총을 가치가 있을지도 모른다. .. 내가 시험해 보았던 것에 관해 나는 편집을 더할 것이다 – Joe
실제로, 당신은 아마 가까웠다. 나는 HwndSouce 비트에 초점을 맞추었고 놓친 :: SetParent. CWnd 포인터를 걸리는 CDialog :: SetParent 사용하려고 및 CWnd :: Attach 나를 위해 작동하지 않았습니다. 하지만 WindowInteropHelper WPF 측면에 대한 HWND 가져 오려면 사용할 수 있어야합니다 :: SetParent – Joe
Dang 300 char limit. 나중에 이것을 시험해 보겠습니다. 아마 월요일에 일하게 될 것입니다. – Joe