如何在winform应用程序中绘制matlab图?

时间:2014-07-08 13:29:06

标签: c# winforms matlab plot figure

我有一个matlab m文件,它绘制了一些函数。使用matlab,我创建了网络组装项目,最后我得到了一个dll可以使用。我有一个使用c#在visual studio中创建的winform应用程序,我从我的应用程序调用我的dll(在matlab中生成)。最后我在新窗口中得到一个图形(matlab中的图形命令)。 例如,它看起来像: http://i.stack.imgur.com/cbq5Z.png

是否有可能将matlab图形嵌入我的winform应用程序中?

http://i.stack.imgur.com/S9V9s.png 在matlab中保存图片并将其加载到winform中的图片框不是一个好的解决方案,因为我需要操作图形(缩放,在3d中旋转)。

1 个答案:

答案 0 :(得分:3)

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);

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