在VS2008,VS2010,VC6.0MFC中嵌入MATLAB的command window,调用MATLAB引擎
2016-09-30 09:43
519 查看
在VS2008,VS2010,VC6.0MFC中嵌入MATLAB的command window,调用MATLAB引擎
我们在MFC运用的时候,有时候需要调用MATLAB的功能,实现画图,计算的一下功能,这里我们可直接将MATLAB的command window嵌入MFC界面,从而实现我们所需功能。如下图1. 首先在资源视图你的主MFC界面里加入一个Group Box,设置他的ID
2. 在你主程序的初始化里面加入以下代码
BOOL CSJBPage1::OnInitDialog() { CBCGPPropertyPage::OnInitDialog(); // TODO: 在此添加额外的初始化 //***********************MATLAB Command Window的打开及嵌入界面************************************// (void) delay(4); //由于程序打开过快,由于MATLAB打开过慢,第一次打开可能捕捉不到窗口,需要一个延时函数,延时4s,当然电脑配置好的话也不需要加 hComWin = ::FindWindow(NULL,"MATLAB Command Window");//获取窗口句柄 long ComWinStyle = ::GetWindowLong(hComWin,GWL_STYLE);//去掉窗口的标题栏和边框 ::SetWindowLong(hComWin,GWL_STYLE,ComWinStyle&(~WS_CAPTION)); CRect ComWinRect;//获取绘图区域的位置和大小 CWnd *TrimArea = GetDlgItem(IDC_STATICCommand); TrimArea->GetWindowRect(&ComWinRect); long ComWinWidth = ComWinRect.Width(); long ComWinHeight = ComWinRect.Height(); ::SetParent(hComWin,TrimArea->GetSafeHwnd());//设置matlab窗口为mfc子窗口并调整大小 ::SetWindowPos(hComWin,NULL,0,0,ComWinWidth,ComWinHeight,SWP_NOZORDER | SWP_NOACTIVATE); //::SetWindowPos(hComWin,NULL,0,0,300,300,SWP_NOZORDER | SWP_NOACTIVATE);//设置窗口宽度 ::ShowWindow(hComWin,SW_SHOW); ::SetForegroundWindow(this->m_hWnd); return TRUE; // return TRUE unless you set the focus to a control // 异常: OCX 属性页应返回 FALSE }
3. 在构造函数里面初始化
CSJBPage1::CSJBPage1() : CBCGPPropertyPage(CSJBPage1::IDD) { ShellExecute(0,"open","MATLABR2011b",NULL,"C:\\Users\\sujianbo\\Desktop",SW_SHOWNORMAL);//快捷方式必须是MATLABR2011b不能是MATLABR2011b.exe //C:\\Users\\sujianbo\\Desktop这个是你引擎启动快捷方式放的位置 }
4. MATLAB 启动的快捷方式制作
我用的是MATLAB2011b,其他版本可能会有一些问题
相关文章推荐
- VS2008调用matlab引擎找不到dll问题
- vs2010 matlab混合编程调用matlab引擎
- matlab编写的.M文件用vc6.0(MFC(dll)工程转换为dll文件,并用vc6.0(MFC对话框工程调用dll)文件
- vs2008 调用matlab 2013a引擎
- vs2010 matlab混合编程调用matlab引擎
- vs2010 matlab混合编程调用matlab引擎
- VS2010调用Matlab 2010 引擎的相关设置及问题( error LNK2019: unresolved external symbol _engOpen referenced in )
- 在VC6.0下面如何调用matlab的程序
- ExtJS Window嵌入FormPanel,多次调用报错问题
- VS2008 C++ 调用MATLAB 2009b 生成的DLL
- VS2008环境下,C++生成Dll文件 C++调用Dll文件(非MFC)
- 【MATLAB与C的混合编程】之【C程序调用Matlab计算引擎】(3)
- VS2008 C++ 调用MATLAB 2009b 生成的DLL
- vc6.0或者vs2008 MFC程序采用console输出调试信息的方法
- C#(VS2008)调用Matlab
- vc中调用matlab引擎,如何写入循环!!!
- windows+Code::Blocks+gcc调用matlab引擎
- VS2008 Non-MFC Dll创建和调用
- VS2008 C++ 调用MATLAB 2009b 生成的DLL
- 转:VS2010和VS2008 KB2465361之后,MFC静态链接 EXE体积变大问题