功能

点击【打开文件】按钮,选择文件打开,将数据处理为图像(默认处理第10帧开始),然后将图像显示在图片控件。

注:整个项目有关图像处理的操作基本用OpenCV实现。

读取文件实现

1、添加按钮控件

在窗口界面,将控件拖进即可,控件在【view】->【TOOL Box】中。

2、鼠标右击更改点击【属性】更改属性

可更改:

名称(Caption)

ID(最好按功能名更改):如打开文件可命名为IDC_BUTTON_OPENFILE。

其他按自己的需求

3、添加点击响应事件

选中控件右击——>选择【添加事件处理程序】——》选择【BN_CLICKED】。如下:

 4、会自动跳转至处理程序,然后根据实际需求编写程序

这里是有用的关键代码,在此记录一下

  • 读取文件对话框代码:
 ///TRUE为OPEN对话框,FALSE为SAVE AS对话框 CFileDialog dlg(TRUE);CString OpenFilePath;if (dlg.DoModal() == IDOK)OpenFilePath = dlg.GetPathName(); //获取文件路径OnPaint();
  • CString转string(c++的接口用的string)
//CString转stringUSES_CONVERSION;string file_path(W2A(OpenFilePath));
  • 在图片控件显示图像(OpenCV)

首先,在BOOL XXXXXXDlg::OnInitDialog()函数中加入以下窗口初始化代码:

//注:224*4, 126*4是窗口尺寸,可以更改
CRect rect;GetDlgItem(IDC_STATIC_IMG)->GetWindowRect(&rect);           //IDC_WAVE_DRAW为对应Picture Control的ID  ScreenToClient(&rect);GetDlgItem(IDC_STATIC_IMG)->MoveWindow(rect.left, rect.top, 224*4, 126*4, true);    //固定Picture Control控件的大小namedWindow("view",CV_WINDOW_AUTOSIZE);HWND hWnd = (HWND)cvGetWindowHandle("view");  //创建显示窗口HWND hParent = ::GetParent(hWnd);  //父窗口::SetParent(hWnd, GetDlgItem(IDC_STATIC_IMG)->m_hWnd); ::ShowWindow(hParent, SW_HIDE);

然后,在按钮单击事件函数中添加代码:

//获取图像并显示img = get_img(csvData_Slip, 1920, 1080, current_frame-1, Color);//这一句是我项目中的获取图像函数,要做更改CRect rect;GetDlgItem(IDC_STATIC_IMG)->GetClientRect(&rect); //获取图片控件窗口Rect dst(rect.left, rect.top, rect.right, rect.bottom); //窗口位置resize(img, current_img, cv::Size(rect.Width(), rect.Height())); //适应控件窗口大小imshow("view", current_img); //显示
  • 参数更新

一定要在代码段前后加上这两句,不然尤其编辑框的参数没办法更新显示!

 //数据更新UpdateData(TRUE);/代码段/UpdateData(FALSE);
  • 弹出消息提示对话框
// 显示消息对话框  ,参数按需求更改
nRes = MessageBox(_T("数据读取完成!"), _T("数据读取"), MB_OKCANCEL |     MB_ICONASTERISK);
// 判断消息对话框返回值。如果为IDCANCEL就return,否则继续向下执行
if (IDCANCEL == nRes)return;

MessageBox的参数可以参考:http://www.jizhuomi.com/software/171.html

  • 关于MFC中定义全局变量和类成员变量的问题

1、当我们需要在单个整个文件用到某个变量时,需要将它定义为全局变量,只需要在对话框Cpp文件的开头申明即可。

2、当我们有好几个文件或者几个类之间需要相互调用的话,就需要把变量定义为类的公共成员变量,在对话框头文件添加即可。

3、在文件1调用文件2中的全局变量,还有一种方式就是在文件1中将变量声明为 extern,这样就可以自动在其他文件查找这个变量。

END! 

项目MFC总结(二)——读取CSV文件将数据转化为图像显示在图片控件相关推荐

  1. 乐鑫esp8266学习rtos3.0笔记:esp产品 如何从外部读取 csv 文件的数据,比如从代码读取外部文件阿里云三元组。(附带demo)

    本系列博客学习由非官方人员 半颗心脏 潜心所力所写,不做开发板.仅仅做个人技术交流分享,不做任何商业用途.如有不对之处,请留言,本人及时更改. 1. Esp8266之 搭建开发环境,开始一个" ...

  2. openCsv读取csv文件

    https://blog.csdn.net/cat_book_milk/article/details/52953786 Java读取csv文件 https://blog.csdn.net/galen ...

  3. 有字符csv文件导入matlab_Matlab:如何读取CSV文件以及如何读取带有字符串数据项的CSV文件...

    CSV,逗号分开的文件,如果能快速的读取这些文件中的数据,无疑会帮助我们解决很多问题. 1. 只有数据的CSV文件,CSV file that includes only numbers. As an ...

  4. python读取csv文件路径正确但报错FileNotFoundError: [Errno 2] No such file or directory

    项目场景: python读取csv文件路径正确但报错FileNotFoundError: [Errno 2] No such file or directory 问题描述: #储存调用表格.数据 #调 ...

  5. python csv读取-Python读取csv文件(详解版,看了无师自通)

    前面程序展示的数据都是直接通过程序给出的,但实际应用可能需要展示不同来源(比如文件.网络).不同格式(比如 csv.JSON)的数据,这些数据可能有部分是损坏的,因此程序需要对这些数据进行处理. cs ...

  6. python怎么读取csv文件-Python读取csv文件(详解版,看了无师自通)

    前面程序展示的数据都是直接通过程序给出的,但实际应用可能需要展示不同来源(比如文件.网络).不同格式(比如 csv.JSON)的数据,这些数据可能有部分是损坏的,因此程序需要对这些数据进行处理. cs ...

  7. Python读取CSV文件画折线图

    首先,我们先导入需要的模块,然后读取CSV文件的数据,在折线图上画出"Third"这一列的数据的折线图 画出的图表结果: import pandas as pd import ma ...

  8. python 批量读取csv_python批量读取csv文件

    请问大神怎样用python批量读取文件夹下的文件? python如何读取CSV文件一部分数据 Python如何批量读取CSV文件并写入TXT? 如何用python把多个csv文件数据处理后汇总到新cs ...

  9. Python读取csv文件(详解版,看了无师自通)

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取 python免费学习资 ...

最新文章

  1. Latex 添加多张图片技巧说明
  2. 如何下载和离线安装Chrome的CRX扩展文件包
  3. pycharm提示:Class names should use CamelCase convention(类名命名应遵守驼峰命名约定)
  4. UVA 10334 Ray Through Glasses
  5. 【python数字信号处理】——循环卷积(也叫圆圈卷积)
  6. C# 在PC上的通过蓝牙(bluetooth)发送数据到手机
  7. Ueditor setContent内容含引号显示异常
  8. 记一个tcp udp测试工具ethrc
  9. Elasticsearch Trying to create too many scroll contexts. Must be less than or equal to: [500]
  10. Failed to execute vcredist_x64.exe
  11. 2020年区块链行业十大趋势
  12. DAY41:Cobalt Strike 工具使用
  13. 优化-处理大量定时任务的思路
  14. mac安装homebrew + git + nodejs
  15. 求无限循环小数的循环节
  16. 编辑为什么建议转投_SCI编辑建议转投容易录用吗
  17. ElasticSearch是什么?和Solr有什么区别?
  18. Python 使用pip安装OpenCV2
  19. (附源码)SSM学校旧书交易网站JAVA计算机毕业设计项目
  20. ps不显示安装字体解决办法

热门文章

  1. NBNet: Noise Basis Learning for Image Denoising with Subspace Projection
  2. win7下简单隐藏文件方法
  3. HTMLCollection NodeList
  4. LeetCode 221. Maximal Square (最大正方形)
  5. Qt FTP地址下载中文乱码问题
  6. 用verilog 实现8bit数据的并串转换
  7. 直播html接口,直播接口文档.html
  8. 服装行业进销存管理系统数据处理的三个方向
  9. 中国山脉分布图和中国地形图
  10. 信息论复习笔记(1):信息熵、条件熵,联合熵,互信息、交叉熵,相对熵