zoukankan      html  css  js  c++  java
  • 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 ---------------------------------------------------------

  • 相关阅读:
    Solace 简介
    Google BERT摘要
    Difference between java.lang.RuntimeException and java.lang.Exception
    第三方deepvoice3_pytorch安装使用
    通过setup.py安装项目dependencies
    Heroku 教程
    使用谷歌CoLaboratory训练神经网络
    最完整的自动化测试流程:Python编写执行测试用例及定时自动发送最新测试报告邮件
    Jmeter参数化之数据库读取数据
    python之lambda、filter、map、reduce的用法说明(基于python2)
  • 原文地址:https://www.cnblogs.com/mjk961/p/9299971.html
Copyright © 2011-2022 走看看