【问题标题】:how to plot matlab figure inside winform application?如何在winform应用程序中绘制matlab图形?
【发布时间】:2014-07-08 13:29:05
【问题描述】:

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

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

在matlab中保存图片并在winform中加载到picturebox不是一个好的解决方案,因为我需要对图形进行操作(缩放,3d旋转)。

【问题讨论】:

    标签: c# winforms matlab plot figure


    【解决方案1】:

    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 导入这些)。

    【讨论】:

    • 太棒了!谢谢!
    • @Denver,此代码是否需要在我的计算机中安装 MATLAB 软件?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-23
    • 2022-01-25
    • 1970-01-01
    • 2014-02-09
    相关资源
    最近更新 更多