如何将Win32窗口设置为WPF窗口的所有者?

时间:2010-04-08 10:24:55

标签: wpf winapi owner

我想在旧版win32应用程序中使用WPF窗口。 我想以类似的方式表现它们,就像WPF窗口始终显示在win32窗口之上。

为此,我想将WPF窗口的所有者设置为win32窗口,但我不知道如何实现这一点。

这里有任何帮助吗?

由于答案隐藏在某些链接背后,这里是执行该技巧的代码:

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

2 个答案:

答案 0 :(得分:14)

本文介绍如何获取两者的句柄以及如何使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

WindowInteropHelper上的MSDN页面:

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

希望有所帮助, 编

答案 1 :(得分:1)

SetParent()怎么样?我知道在将WPF窗口作为Windows窗体的MDI子窗口时可行。