Мне нужно иметь возможность получить HWND владельца диалога WinForm. В неуправляемом у меня есть фоновый поток, который получает HWND для окна впереди. Затем код вызывает :: GetParent (frontHWND), чтобы увидеть, нужно ли скрывать другое немодальное диалоговое окно MFC. Когда диалоговое окно WinForm является frontHWND, я всегда возвращаю NULL для вызова GetParent. Я также попробовал GetOwner, понимая, что .Net пытался убрать разницу между Родителем и Владельцем. Глядя на диалог WinForm с Spy ++, он также говорит, что WinForm не имеет ни родителя, ни владельца. Я прошел в
NativeWindow ^natWin = gcnew NativeWindow();
natWin->AssignHandle(IntPtr(hwndParent));
managedDlg->ShowDialog(natWin);
Приведенный выше код не установил владельца WinForm. Я пытался вызвать Win32 SetParent из кода WinForm в OnFormShown (), но заблокировал приложение MFC и WinForm.
Может ли кто-нибудь объяснить, как заставить мое неуправляемое диалоговое окно / приложение быть владельцем / родителем управляемой winform?