2011-09-20 25 views
10

Estoy desarrollando una aplicación que necesita una ventana Win32 nativa del host y de alguna manera no tengo pistas de cómo hacerlo.Ventana nativa Win32 en WPF Control

Necesito crear una ventana de diálogo WPF que pueda mostrar el control Win32 nativo en ella. Esta ventana de diálogo también tendrá controles WPF, por lo que estoy buscando algún tipo de Grid del que pueda tomar HWND y enviarlo al control C++ no administrado, para que pueda usarlo. ¿Es eso posible?

No necesito saber qué sucede dentro de esa superficie, solo necesito dejar que C++ dll dibuje sobre él y todo lo que tengo que hacer es pasar HWND que tiene el tamaño adecuado (que yo sé).

yo soy un poco nuevo para WPF (usado para hacer la programación Win32) y bastante perdido (pero ahora la forma de una interfaz hacia C# .NET, etc.)

Sería genial si pudiera enviar ninguna pista :)

Respuesta

12

puede empezar siguiendo las instrucciones/pasos aquí: Hosting Win32 Content in WPF

del artículo de introducción:

Un Tutorial de Win32 Dentro de Windows Presentation Marco (HwndHost)

de reutilizar el contenido de Win32 dentro de las aplicaciones de WPF, utilice HwndHost, que es un control que hace que se parecen a HWNDs contenido de WPF. Al igual que HwndSource, HwndHost es fácil de usar: deriva de HwndHost e implementa los métodos BuildWindowCore y DestroyWindowCore, crea una instancia de tu clase derivada HwndHost y colócala dentro de tu aplicación WPF.

Si su lógica Win32 ya está empaquetada como control, su implementación BuildWindowCore es poco más que una llamada a CreateWindow.

luego si tiene un problema específico, pregunte aquí en SO y la gente lo ayudará en puntos específicos.

+0

Eso es exactamente lo que he estado buscando :) Tengo la ventana de diálogo en funcionamiento ahora. ¡Muchas gracias! – pablox

+0

Me complace ayudar :) –

+0

¿Puedo usar 'HwndHost' para alojar en una aplicación típica de Windows Forms? –

Cuestiones relacionadas