Как установить окно Win32 как владельца окна WPF?

Я хочу использовать окна WPF в устаревшем приложении win32. Я хотел бы вести их так же, как окно WPF, всегда отображаемое поверх окна win32.

Для этого я хотел бы установить владельца окна WPF в окна win32, но я понятия не имел, как этого добиться.

Любая помощь здесь?

Так как ответ скрыт за некоторой ссылкой, вот код, который сделал трюк:

System::Windows::Interop::WindowInteropHelper^ helper = gcnew System::Windows::Interop::WindowInteropHelper(myWpfChildWindow);
helper->Owner = (System::IntPtr)myMainWindowHWND;

Ответы

Ответ 1

В этой статье показано, как получить дескрипторы как для обоих, так и для того, чтобы сделать окно WPF прозрачным наложением для окна win32.

http://blogs.microsoft.co.il/blogs/tamir/archive/2007/04/11/Transparent-WPF-control-over-unmanaged-window-handle.aspx

В этой статье используется WindowInteropHelper для выполнения аналогичных функций.

http://blogs.msdn.com/wpfsdk/archive/2007/04/03/centering-wpf-windows-with-wpf-and-non-wpf-owner-windows.aspx

Страница MSDN на WindowInteropHelper:

http://msdn.microsoft.com/en-us/library/system.windows.interop.windowinterophelper.aspx

Надеюсь, что это поможет, Ed

Ответ 2

Как насчет SetParent()? Я знаю, что работает, создавая окно WPF для ребенка MDI формы Windows.