c++-cli handle

c++ cli - Convertir un identificador de ventana IntPtr a IWin32Window ^



c++-cli handle (3)

¿Cómo convierto un manejador adquirido de la propiedad Handle de un formulario / control, en una IWin32Window ^?



Existe un método más simple que es compatible directamente con el marco .NET sin tener que crear su propia clase personalizada. Puedes usar esto con cualquier manejador de ventana arbitrario.

Dado ptrWindowHandle de tipo IntPtr :

using System.Windows.Forms; NativeWindow nativeWindow = new NativeWindow(); nativeWindow.AssignHandle(ptrWindowHandle);

System.Windows.Forms.NativeWindow implementa la interfaz IWin32Window .


Control.FromHandle

(Eso te da el objeto Control, que implementa la interfaz IWin32Window)

P.ej.

IntPtr myWindowHandle = IntPtr(someVal); IWin32Window^ w = Control::FromHandle(myWindowHandle);

Tenga en cuenta que esto depende de que el identificador se "obtenga de la propiedad Manejar de un formulario / control". No puede utilizar esta técnica con un identificador de ventana de Win32 arbitrario.