Как установить ли неуправляемый диалог в качестве владельца формы WinForm?

Мне нужно получить 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?

7
задан Preet Sangha 23 September 2015 в 03:26
поделиться