MFC是微软开发的基础类库,主要用来开发图形界面应用程序,在学习中,我们要验证算法好坏,一般需要对结果进行可视化。
OpenCV是计算机视觉中的开源算法库,集成了很多先进算法,现在想将MFC与OpenCV进行结合,开发出带有界面的算法程序,可进行界面交互。
由于前期学的比较渣,学了QT,MFC,但都是半吊子。今天从头开始复习整理下MFC基础知识。
1. 环境搭建
visual studio 2015 community 版本,免费且强大的IDE,默认可能没有MFC,可以在里面搜索安装,这里略去。
安装后启动【file】>【new】>【project】,点击如下情况新建一个MFC应用程序
2. MFC程序框架简单配置,选择基于对话框程序,并用静态库配置,这样程序可以更好在其他windows电脑上使用,但程序会比动态链接大点。
其他参数可以默认,也可以根据需要进行配置。
3 打开打开【resource view】资源试图中对话框设计界面
并在其中添加静态文本,按钮及图片控件,可以将默认的直接删除,之后为如下情况
在图片控件上点击鼠标右键,选择属性:并将ID改为ID_VIEW,获得一张bmp格式图像保存到工程文件夹res中,并右键点击资源视图中的 *.rc文件选择【Add Resources】
按中间的图选择,并导入res中的图像。可以发现,资源中多了个Bitmap文件夹,IDB_BITMAP1就是导入图片的默认ID
现在,可以将图片与图片控件进行关联,选择图片控件的属性,将Type下拉选择bitmap,之后会发现Image也出现了下拉菜单,直接选择刚才图片ID
然后,可以在控件中调整大小,使显示更完整,如图所示,这样图片静态显示就完成了。
3. 如图中【python】、【计算器】、【记事本】功能一样,打开其他应用程序,双击按钮,到代码编辑页面,输入如下代码,并在该文件中添加头文件 #include <assert.h>
void Cdemo01Dlg::OnBnClickedButton1() { // TODO: Add your control notification handler code here // 改变 *.exe 路径可以打开对应软件,"notepad.exe"打开记事本,"calc.exe"打开计算器 HINSTANCE hRslt = ShellExecute(NULL, _T("open"), _T("E:/Python36/python.exe"), NULL, NULL, SW_SHOWNORMAL); assert(hRslt > (HINSTANCE)HINSTANCE_ERROR); }
4. 打开关于对话框,我们发现资源中有一个about 对话框,但默认情况下并无卵用,我们添加一个按钮【关于】来调用它,双击并编辑代码:
void Cdemo01Dlg::OnBnClickedButton5() { // TODO: Add your control notification handler code here CAboutDlg dlg; dlg.DoModal(); }
5. 退出按钮代码
void Cdemo01Dlg::OnBnClickedButton4() { // TODO: Add your control notification handler code here PostQuitMessage(0); }
6. 结果
------------------------------------------ Done ---------------------------------------------------------