如何在Winform应用程序中绘制Matlab图形?

9
我有一个Matlab M文件,绘制了一些函数图形。我使用Matlab创建了一个.NET程序集项目,最终生成了一个可供使用的DLL。我在Visual Studio中使用C#创建了一个WinForm应用程序,并从该应用程序中调用我的DLL(由Matlab生成)。最终,我会在新窗口中得到一个图形(Matlab中的figure命令)。
例如,它看起来像这样: http://i.stack.imgur.com/cbq5Z.png 是否可能将Matlab图形嵌入到我的WinForm应用程序中? http://i.stack.imgur.com/S9V9s.png 在Matlab中保存图片并将其加载到WinForm中的PictureBox不是一个好的解决方案,因为我需要操作该图形(缩放,旋转3D)。
1个回答

4

在 C++ GUI 中直接绘制 Matlab 图表

以下是你需要的方法。你需要从 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);

您可以使用SetWindowPos()和SetWindowLong()管理foundWindow的位置和大小(从User32.dll中导入这些内容)。


太好了!谢谢你! - sagamor
@Denver,这段代码需要在我的电脑上安装MATLAB软件吗? - M_Mogharrabi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接