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();
}

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. 阿里云重磅推出物联网设备身份认证Link ID²

     2018年12月19日,阿里云宣布推出新版物联网设备身份认证Link ID²及物联网安全运营中心Link SOC,护航万物智联.   随着越来越多的设备连接到网络中,随之而来的安全问题越来越突出. ...

  2. 大数据学习路线,来qun里分享干货,

    一.Linux lucene: 全文检索引擎的架构 solr: 基于lucene的全文搜索服务器,实现了可配置.可扩展并对查询性能进行了优化,并且提供了一个完善的功能管理界面. 推荐一个大数据学习群 ...

  3. NOIp2018集训test-9-2(pm)

    其实这套题我爆0了,T1define 写成ddefine编译错误 T2有两个变量爆int 但是我看zwh不在悄悄地改了,我心里还是十分愧疚(没有)的.主要是林巨已经虐我125了要是再虐我200分我大概 ...

  4. 判断语句 (a>b)?a:b【转载】

    文章转载自https://blog.csdn.net/hyj1996818/article/details/81783513 今天刷题有看到一种我没学过的判断语句 感觉很高级的样子 我跟大家分享下我的 ...

  5. spring注解方式配置以及spring4的泛型注入 (4)

    目录 一.@Controller 注解控制层(action) 二.@Service 注解服务层 三.@Repository 持久层 四.spring4的泛型注入测试 1 创建两个实体User和Role ...

  6. day26-多态、封装、反射

    #!/usr/bin/env python # -*- coding:utf-8 -*- # ----------------------------------------------------- ...

  7. 日常 java+雅思+训练题1

    今天主要学了一些类似c中的一些语句,java也是一样类似的,只有一些点需要稍微注意一下,一些语句是新增的需要知道. 完完全全新学的知识就是class和instance的区别.如何创建实例.数据的封装. ...

  8. icmp隧道--icmpsh

    本地:ubantu 目标主机:windows 在ubantu上关闭自带的icmp回应 sysctl -w net.ipv4.icmp_echo_ighore_all=1 ubantu上启动 pip i ...

  9. RHEL7中网卡绑定team和bond的区别

    red hat 官方给出的team和bond特性对比 A Comparison of Features in Bonding and Team Feature Bonding Team broadca ...

  10. 大道浮屠诀---cwRsync同步工具的使用

    目的: 在日常生活中,我们有时候会遇到这样类似的问题 ---需要把一台服务器上的某个重要的文件进行备份(拷贝另外的服务器上) ---需要同步系统上的配置文件到其他系统 利用此cwRsync软件可以解决 ...