标题:请教大家一个简单VC++和MATLAB的混合编程问题
取消只看楼主
zbjshower
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2010-5-19
 问题点数:0 回复次数:1 
请教大家一个简单VC++和MATLAB的混合编程问题
   我照《MATLAB与c/c++混合编程》中的方法操作将MATLAB 的Figure窗口嵌入到MFC应用程序中,但是结果如下图所示情况,绘图区好像绘制了两个图片,而且位置和大小还和要求的不一致,请大家帮帮看下问题处在什么地方,先谢谢啦!(绘图区应制绘制一个图片,而且大小和绘图区窗口一样大)

 程序如下:

// TODO: Add your control notification handler code here
    char wnd_name[]="MyTest";
    mwArray mwWndName(wnd_name);
    mccdemo3(mwWndName);      //调用演示函数

 //获得窗口句柄
    HWND hFig=::FindWindow(NULL,wnd_name);
    while(hFig==NULL)
    {
        hFig=::FindWindow(NULL,wnd_name);
    }
    //首先隐藏窗口
    ::ShowWindow(hFig,SW_HIDE);

    //获得空间区域
    CRect figure_rect;
    CWnd *myfigure=GetDlgItem(IDC_STATIC);
    myfigure->GetWindowRect(&figure_rect);
    long fig_width=figure_rect.Width();
    long fig_height=figure_rect.Height();

    //重置MATLAB Figure窗口的父窗口
    ::SetParent(hFig,myfigure->GetSafeHwnd());

    //去掉MATLAB Figure窗口的标题栏和框架属性
    long lStyle=::GetWindowLong(hFig,GWL_STYLE);
    ::SetWindowLong(hFig,GWL_STYLE,lStyle&(~WS_CAPTION)&(~WS_THICKFRAME));
    //::ShowWindow(hFig,SW_SHOW);
   
    //将MATLAB Figure窗口移动到空间位置
    ::SetWindowPos(hFig,HWND_BOTTOM,0,0,fig_width+8,fig_height+33,SWP_NOZORDER|SWP_NOACTIVATE);

    //显示窗口
    ::ShowWindow(hFig,SW_SHOW);   

    //激活主窗口
    ::SetForegroundWindow(this->m_hWnd);
搜索更多相关主题的帖子: MATLAB 
2010-05-19 19:29
zbjshower
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2010-5-19
得分:0 
没人回答   自己顶起   免得沉了
2010-05-20 08:43



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-307358-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.046458 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved