2014-07-08 23 views
6

Ich habe eine Matlab-m-Datei, die einige Funktionen plottet. Mit Matlab habe ich ein Net-Assembly-Projekt erstellt und schließlich habe ich eine DLL zum arbeiten bekommen. Ich habe eine Winform-Anwendung in Visual Studio mit C# erstellt, und ich rufe meine DLL (in Matlab generiert) aus meiner Anwendung. Schließlich erhalte ich ein Diagramm in einem neuen Fenster (Abbildung Befehl in Matlab). Zum Beispiel sieht es so aus: http://i.stack.imgur.com/cbq5Z.pngwie matlab figur in winform anwendung plotten?

Ist es möglich, eine Matlab Figur in meine winform App einbinden?

http://i.stack.imgur.com/S9V9s.png Speicher Bild in Matlab und lädt es in winform picturebox ist keine gute Lösung, weil ich die Figur in Betrieb nehmen muß (Zoomen, Drehen in 3d).

Antwort

4

Matlab plots directly inside c++ GUI

Dies ist, was Sie brauchen. Sie müssen die FindWindow() -Methode von User32.dll importieren. Es gibt einen Zeiger auf das Fenster zurück, dessen Name Sie als zweites Argument übergeben. Nachdem Sie den Zeiger erhalten haben, müssen Sie das übergeordnete Element festlegen, indem Sie die SetParent() - Methode verwenden, die Sie auch von User32.dll erhalten können. Um einen Zeiger auf dem Formular zu erhalten, verwenden Sie this.Handle:

IntPtr foundWindow = FindWindow("SunAwtFrame", "Figure 1"); //I belive, this shall give you a pointer to your Matlab window 
SetParent(foundWindow, this.Handle); 

Und Sie können foundWindow Position und Größe mit SetWindowPos() und SetWindowLong() (importieren diese von User32.dll) verwalten.

+0

Ausgezeichnet! Vielen Dank! – sagamor

+0

@Denver, Muss dieser Code MATLAB-Software in meinem Computer installiert werden? –

Verwandte Themen