2014-07-08 60 views
6

我有一個matlab m文件,它繪製了一些函數。使用matlab,我創建了網上的程序集項目,最後我得到了一個DLL的工作。我有一個使用c#在visual studio中創建的winform應用程序,我從我的應用程序調用我的dll(在matlab中生成)。最後,我在新窗口中看到一個圖形(圖中的數字命令)。 例如,它看起來像: http://i.stack.imgur.com/cbq5Z.png如何在winform應用程序中繪製matlab圖?

是否有可能嵌入MATLAB身影進入我的winform應用程序?

http://i.stack.imgur.com/S9V9s.png 保存在MATLAB圖片,加載它在winform PictureBox的是不是一個很好的解決方案,因爲我需要運行圖(縮放,三維旋轉)。

回答

4

Matlab plots directly inside c++ GUI

這是你所需要的。您必須從User32.dll導入FindWindow()方法。它返回一個指向窗口的指針,你將其作爲第二個參數傳遞給你。獲得指針後,必須使用SetParent()方法設置它的父項,並可以從User32.dll中獲取該方法。爲了得到一個指向您的形式,使用this.Handle:

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

而且你可以管理foundWindow位置,並使用SetWindowPos尺寸()和SetWindowLong函數()(從User32.dll中導入這些)。

+0

非常好!謝謝! – sagamor

+0

@Denver,這段代碼是否需要在我的電腦上安裝MATLAB軟件? –