2014-07-08 18 views
6

ho un m-file matlab, che traccia alcune funzioni. Usando matlab, ho creato un progetto di assemblaggio netto e finalmente ho ottenuto una dll con cui lavorare. Ho un'applicazione winform creata in visual studio usando C# e chiamo my dll (generato in matlab) dalla mia applicazione. Finalmente ottengo un grafico in una nuova finestra (comando di figura in MATLAB). Per esempio, sembra che: http://i.stack.imgur.com/cbq5Z.pngcome stampare la figura matlab all'interno dell'applicazione winform?

E 'possibile inserire una cifra MATLAB nel mio WinForm app?

http://i.stack.imgur.com/S9V9s.png Salvataggio foto in MATLAB e il caricamento di PictureBox in winform non è una buona soluzione, perché ho bisogno di operare la figura (zoom, ruotare in 3d).

risposta

4

Matlab plots directly inside c++ GUI

Questo è quello che vi serve. Devi importare il metodo FindWindow() da User32.dll. Restituisce un puntatore alla finestra con il nome che si passa come secondo argomento. Dopo aver ottenuto il puntatore, devi impostarlo come genitore, usando il metodo SetParent(), che puoi anche ottenere da User32.dll. Al fine di ottenere un puntatore al modulo, utilizzare this.Handle:

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

E si può gestire la posizione e le dimensioni foundWindow utilizzando SetWindowPos() e SetWindowLong() (importarli da User32.dll).

+0

Eccellente! Grazie! – sagamor

+0

@Denver, questo codice richiede l'installazione del software MATLAB sul mio computer? –

Problemi correlati