17

従来の win32 アプリケーションで WPF ウィンドウを使用したいと考えています。WPFウィンドウが常にwin32ウィンドウの上に表示されるように、それらを同様の方法で動作させたいと思います。

このために、WPF ウィンドウの所有者を win32 ウィンドウに設定したいのですが、これを実現する方法がわかりません。

ここで何か助けはありますか?

答えはいくつかのリンクの後ろに隠されているので、ここでトリックを行ったコード:

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

2 に答える 2

13

この記事では、両方のハンドルを取得する方法と、WPF ウィンドウを win32 ウィンドウの透明なオーバーレイにする方法を示します。

http://dedjo.blogspot.com/2007/04/transparent-wpf-control-over-unmanaged.html

この記事では、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

お役に立てば幸いです、エド

于 2010-04-08T11:48:56.457 に答える
1

どうSetParent()ですか?私は、WPF ウィンドウを Windows フォームの MDI 子にするときに機能することを知っています。

于 2010-04-08T11:48:11.527 に答える