关于c#:如何在winform 应用程序中绘制matlab 图形?

how to plot matlab figure inside winform application?

我有一个 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中将其加载到picturebox并不是一个好的解决方案,因为我需要操作图形(缩放,3d旋转)。


Matlab 直接在 c GUI 中绘图

这正是您所需要的。您必须从 User32.dll 导入 FindWindow() 方法。它返回一个指向您作为第二个参数传递的名称的窗口的指针。获得指针后,您必须使用 SetParent() 方法设置它的父级,该方法也可以从 User32.dll 中获取。为了获得指向您的表单的指针,请使用 this.Handle:

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

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