Pergunta

Quero usar o WPF Windows em um aplicativo Legacy Win32. Eu gostaria de me comportar de maneira semelhante, como a janela WPF sempre sendo exibida na parte superior da janela Win32.

Para isso, gostaria de definir o proprietário da janela WPF para o Win32 Windows, mas não tenho idéia de como conseguir isso.

Alguma ajuda aqui?

Como a resposta está escondida por trás de algum link, aqui o código que fez o truque:

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

Solução

Este artigo mostra como obter as alças e como fazer com que a janela WPF se torne uma sobreposição transparente para a janela Win32.

http://blogs.microsoft.co.il/blogs/tamir/archive/2007/04/11/transparent-wpf-control-over-unaged-window-handle.aspx

Este artigo usa um Windowinterphelper para realizar funcionalidade semelhante.

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

Página MSDN no Windowinterphelper:

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

Espero que ajude, Ed

Outras dicas

Que tal SetParent()? Eu sei que funciona ao fazer de uma janela WPF um filho MDI de um formulário do Windows.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top