Je dois montrer mon System.Windows.Forms.Form en tant que fenêtre enfant d'un HWND C++ non géré. Ce code est le SDK C# qui récupère NativeWindow:Forme gérée en tant qu'enfant de HWND non géré
public static NativeWindow MainWindow()
{
Diagnostics.Process process = Diagnostics.Process.GetCurrentProcess();
if (null == process)
return null;
IntPtr handle = process.MainWindowHandle;
if (IntPtr.Zero == handle)
return null;
NativeWindow wnd = new NativeWindow();
wnd.AssignHandle(handle);
return wnd;
}
Voici comment il est mis en œuvre dans le plug-in:
IWin32Window rh_wnd = Rhino.RhinoApp.MainWindow();
DocEditor.Show(rh_wnd);
Cela fonctionne .... la plupart du temps. Mais il échoue aussi souvent la première fois que j'appelle ce code:
HWND Error http://www.freeimagehosting.net/uploads/f29bc27823.png
Appelez à nouveau, tout fonctionne bien. Que se passe-t-il?!?
Problèmes de pointeur .... –