MFC入门--显示静态图片及调用本地软件

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 ---------------------------------------------------------

原文地址:https://www.cnblogs.com/mjk961/p/9299971.html