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>

  1. void Cdemo01Dlg::OnBnClickedButton1()
  2. {
  3. // TODO: Add your control notification handler code here
  4. // 改变 *.exe 路径可以打开对应软件,"notepad.exe"打开记事本,"calc.exe"打开计算器
  5. HINSTANCE hRslt = ShellExecute(NULL, _T("open"), _T("E:/Python36/python.exe"),
  6. NULL, NULL, SW_SHOWNORMAL);
  7. assert(hRslt > (HINSTANCE)HINSTANCE_ERROR);
  8. }

4. 打开关于对话框,我们发现资源中有一个about 对话框,但默认情况下并无卵用,我们添加一个按钮【关于】来调用它,双击并编辑代码:

  1. void Cdemo01Dlg::OnBnClickedButton5()
  2. {
  3. // TODO: Add your control notification handler code here
  4. CAboutDlg dlg;
  5. dlg.DoModal();
  6. }

5. 退出按钮代码

  1. void Cdemo01Dlg::OnBnClickedButton4()
  2. {
  3. // TODO: Add your control notification handler code here
  4. PostQuitMessage();
  5. }

6. 结果

------------------------------------------ Done ---------------------------------------------------------

MFC入门--显示静态图片及调用本地软件的更多相关文章

  1. mfc显示静态图片最简单的方法

    一致都是研究如何调用opencv显示动态图片,但是很多时候在显示图标的时候,都是需要显示静态图片,现在将最简单的方法总结下: 1.添加picture控件 2.添加资源,要求为bmp 3.修改属性 结果 ...

  2. Android 加载gif图片强大框架(支持预加载、缓存,还支持显示静态图片,一行代码全搞定)

    之前项目中没有涉及到显示gif图片的功能,也没有着重研究过,最近项目中要用到显示gif图片,于是就在网上一顿搜,用过之后发现如下几个缺点. 1.加载大的gif图片会出现oom. 2.没有预加载和缓存功 ...

  3. MFC对话框显示BMP图片

    1.MFC对话框显示BMP图片我们先从简单的开始吧.先分一个类: (一) 非动态显示图片(即图片先通过资源管理器载入,有一个固定ID) (二) 动态载入图片(即只需要在程序中指定图片的路径即可载入) ...

  4. 基于FPGA的VGA显示静态图片

    终于熬到暑假了,记过三四周的突击带考试,终于为我的大二画上了一个完整的句号,接下来终于可以静心去做自己想做的事情了,前一阵子报了一个线上培训班,学学Sobel边缘检测,之前一直在学习图像处理,但是因为 ...

  5. FPGA驱动VGA显示静态图片

    一 .前言 本文设计思想采用明德扬至简设计法.VGA是最常见的视频显示接口,时序也较为简单.本文从利用显示屏通过VGA方式显示测试图案及静态图片着手带大家接触图像显示应用,算是为后续VGA显示摄像头采 ...

  6. MFC CListCtrl 显示bmp图片

    m_ListCtrl.SetExtendedStyle(m_ListCtrl.GetExtendedStyle()| LVS_EX_SUBITEMIMAGES | LVS_EX_GRIDLINES); ...

  7. vue中显示静态图片怎么引用

    有多种方法解决这个问题: 首先,如果使用的是img标签那么可以这样 data () { return { img: require('path/to/your/source') } } 然后在temp ...

  8. js通过注册表找到本地软件安装路径并且执行

    场景:用js执行本地的安装软件,如果不存在就执行安装 操作步骤: 1.前台js代码 <script type="text/javascript"> function e ...

  9. MFC入门(三)-- MFC图片/文字控件(循环显示文字和图片的小程序)

    惯例附上前几个博客的链接: MFC入门(一)简单配置:http://blog.csdn.net/zmdsjtu/article/details/52311107 MFC入门(二)读取输入字符:http ...

随机推荐

  1. android高级篇收录

    Android运行时性能优化 1.android启动优化 支付宝客户端架构解析:Android 客户端启动速度优化之「垃圾回收」 支付宝 App 构建优化解析:通过安装包重排布优化 Android 端 ...

  2. [NOI.AC] candy

    题意:求净利益. 思路: 其实我也不怎么懂题面. 不过这种题一般来说就是从最大的开始选. 所以考虑贪心. 那么代价如何处理呢?? 我们考虑两个序列同时选数,把代价每次记录到一个序列的和上,那么对于两次 ...

  3. fedora 18~20 中Qt 5.2.1 解决连接mysql数据库出现QMYSQL driver not loaded的问题

    QT       += sql //在.pro文件里加入这一句 //包含头文件 #include <QDebug> #include <QSqlQuery> #include  ...

  4. JavaScript笔记 – 程序语法设计

    一.基础语法设计 JavaScript是可以与HTML标记语言混合.用于网页交互式的解释型脚本语言.由国际标准ECMAScript提供核心语言功能.文档对象模型(DOM)提供访问和操作网页内容的方法和 ...

  5. 创建 Angular 8.0 项目

    创建 Angular 8.0 项目,首先确保已经安装了 nodejs,如果没有安装,请看这篇文章安装:node.js 安装 1.新建一个空文件夹 angularproject,作为工作区 2.安装 A ...

  6. PAT_A1106#Lowest Price in Supply Chain

    Source: PAT A1106 Lowest Price in Supply Chain (25 分) Description: A supply chain is a network of re ...

  7. C在结构体里面使用共用体

    在做链表的时候我们设计每个节点都是一个结构体,每个节点的数据用一个共用体表示,每创建malloc一个结构体节点我们也要相应的malloc共用体并把它付进去. 这是定义: typedef union E ...

  8. anjs 分词器初步使用

    由于ik没有歧义分词的功能,打算用anjs 对前端传递过来的数据用anjs进行分词 anjs 操作文档官网地址:http://nlpchina.github.io/ansj_seg/ 刚刚开始由于ja ...

  9. org.apache.jasper.JasperException: Unable to compile class for JSP: Invalid character constant

    这里不能用单引号,只能为双引号 request.setCharacterEncoding('gb2312');    String user = request.getParameter(" ...

  10. list集合排序3

    java list按照元素对象的指定多个字段属性进行排序 转载 2016年12月27日 11:39:02 见: http://blog.csdn.net/enable1234___/article/d ...