MFC读取图片一般使用自定义的DIB文件。DIB文件集中了处理图片的API函数,这样可以方便我们的图像操作。
DIB文件下载路径:DIB文件下载
MFC显示图片有几种方法:
1.在运行界面上选择 文件-打开 或者 直接点击打开快捷键
条件是在xxxDoc.cpp文件中加入

BOOL Cimageskitch0Doc::OnSaveDocument(LPCTSTR lpszPathName)
{// TODO: 在此添加专用代码和/或调用基类//+*****保存DIB图像CString strPathName;strPathName.Format("%s",lpszPathName);//+*****新建文件CFile file(strPathName,CFile::modeCreate|CFile::modeWrite);if(m_dib.WriteToFile(&file) == TRUE){SetModifiedFlag(FALSE);     // have savedreturn TRUE;}elsereturn FALSE;//return CDocument::OnSaveDocument(lpszPathName);
}BITMAPINFO  CreateBitmapInfo(cv::Mat workImg)    //  建立位图信息
{                                           BITMAPINFOHEADER BIH={40,1,1,1,8,0,0,0,0,0,0};BITMAPINFO bmi;int bits, colors;RGBQUAD  ColorTab[256];if(CV_8UC3==workImg.type()){bits=24;}if(CV_8UC1==workImg.type()){bits=8;}    if(bits>8) colors=0;elsecolors=1<<bits;   BIH.biWidth   =workImg.cols;     BIH.biHeight  =workImg.rows;BIH.biBitCount=(BYTE) bits;   bmi.bmiHeader=BIH;if(bits==8) {                           //  256 色位图for(int i=0;i<256;i++)  {                //  设置灰阶调色板ColorTab[i].rgbRed=ColorTab[i].rgbGreen=ColorTab[i].rgbBlue=(BYTE)i;}memcpy(bmi.bmiColors,ColorTab, 1024);      }return(bmi);
}

这样,上述操作就可以显示图片了。

第二种方法,在对话框的picture control控件显示图片。
这种方法稍微麻烦。
首先在菜单栏编辑自己的菜单,比如本项目中 “图像匹配”,在下拉菜单下编辑“图像匹配”并修改ID号 :ID_IMAGEMATCH,然后为此菜单添加事件处理程序,选择类是View类。
然后再在资源视图中Dialog下插入dialog对话框。在上面加入几个picture control 控件。底部加入几个button控件。对话框属性的Border属性选为Resizing,这样对话框的大小就可以使用鼠标调节。修改对话框的控件的ID。
效果如下图:

接着为对话框添加类:CDlgImageMatchYG
匹配的事件响应程序就可以这样写:

void CImageMatchingView::OnImagematch()
{// TODO: Add your command handler code hereCImageMatchingDoc* pDoc = GetDocument();//pDoc = GetDocument();// 判断是否是8-bpp位图(这里为了方便,只处理8-bpp位图的水平镜像,其它的可以类推)if(pDoc->m_pDibInit->m_nColorTableEntries != 256)  //pDoc->m_pDibInit在pDoc中初始化{// 提示用户MessageBox("目前只支持256色位图的图象配准!", "系统提示" , MB_ICONINFORMATION | MB_OK);    // 返回return;}// 打开图象识别对话框CDlgImageMatchYG* pDlg = new CDlgImageMatchYG(NULL, pDoc);pDlg->DoModal();delete pDlg;
}

在事件处理程序中调用对话框对象。
在CDlgImageMatchYG类文件中,有几个函数比较重要。
OnPaint()函数,本函数由对话框对象自动调用,刷新对话框。
CalImageLocation(),自定义的设置对话框的控件位置和大小的函数。
本项目源码下载路径:mfc显示图片源码

MFC 对话框中的picture control 控件显示图片相关推荐

  1. 在MFC对话框中快速集成三维控件

    在MFC的对话框中可以方便的集成AnyCAD三维控件(c++版本),遵循一下几步: 1.在对话框资源中增加一个Static控件,ID为IDC_STATIC_3D,并且把它的Notify属性设置为Tru ...

  2. 在VC++中使用Tab Control控件

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 系统环境 ...

  3. 【MFC】动态加载Picture Control控件中的图片

    [MFC]动态加载Picture Control控件中的图片 前言 方法1:CBrush 方法2:SetBitmap 参考链接 方法3:重写MyPictureControl 前言 在MFC窗体中,我们 ...

  4. MFC中使用TAB Control控件

    2019独角兽企业重金招聘Python工程师标准>>> MFC中使用TAB Control控件 MFC中使用TAB Control控件(转) 假如我现在有个SDI程序,View是Fo ...

  5. C++ MFC picture control控件按比例显示任意图片文件(jpg、bmp等)

    前段时间做大一专业实训,用MFC做一个图片查看类程序,对于从来没有学过C++的我们来说显示一张图片就是一件很难的事情了,作为小组里唯一一个MFC设计者,我从网上有很多关于MFC图片控件显示的文章,但大 ...

  6. C#利用Picturebox控件显示图片

    源文章:https://blog.csdn.net/liyuqian199695/article/details/54098938 C#利用Picturebox控件显示图片 1.Picturebox控 ...

  7. Picture Control 控件 加载图片 画线

    编程中遇到问题,如何在已有图片上添加 虚线,图片使用Picture控件显示 参考网页https://bbs.csdn.net/topics/10044979 其中参考程序段如下: 这是我画线的程序: ...

  8. 使用CvvImage类在MFC的static控件显示图片

    使用OpenCV的库,可以非常便捷地实现对图像的各种操作.在CTestDlg对话框中放置一个picture static控件,ID为IDC_STATIC,如下函数即可实现显示图片的功能.根据此方法,可 ...

  9. MFC怎么让图片适应picture control控件的大小

    最近做项目时,遇到一个问题,想要让picture control中的图片显示与该控件的大小一致,用的环境是vs2008,添加一个控件后,更改其type为bitmap,此时的控件大小不能改变,需要将Ce ...

最新文章

  1. hbuilder能断点吗_知乎点赞破4万!这些PPT小秘密你知道吗?
  2. 纪念逝去的岁月——C/C++选择排序
  3. 自己挖的坑自己填--JVM报内存溢出
  4. PostgreSQL中Timestamp转成世纪秒(Unix时间戳)
  5. CV《物体识别与检测3 - 多目标识别的优化技术》
  6. 计算机专业学的东西其实很少,为什么计算机专业的学生要学习使用Linux系统?...
  7. Unity3D SceneView Camera
  8. python写一些小代码_#python#自己写的一段小代码
  9. html5 drawimage 不显示,javascript – 来自视频的HTML5 Canvas drawImage在第一次绘制时不显示...
  10. mysql begin_MySQL 存储过程的 BEGIN 和 END
  11. Spring Boot 问题记录
  12. 重磅!2021年国内Java培训机构排名前十最新出炉啦
  13. matlab uicontrol 居中,[转载]matlab的uicontrol
  14. python apply函数不打印_Python Pandas dataframe shift在apply函数中不起作用
  15. 青出于蓝而胜于蓝,这是一款脱胎于Jupyter Notebook的新型编程环境
  16. Pythton学习笔记1
  17. Docker构建harbor+IDEA,一篇文章就够了
  18. 【SPSS】百分位数计算方法探讨:SPSS计算差异
  19. 华硕笔记本拆机清尘,修理
  20. 软件测试压力测试例子,第一个web压力测试例子 - 稻香老农 - 51Testing软件测试网 51Testing软件测试网-软件测试人的精神家园...

热门文章

  1. iOS逆向之旅---在iPhone上开发微信自动跳一跳插件
  2. js数组push()方法的重写
  3. QT c++备忘录/微信小程序备忘录
  4. switch课堂练习
  5. Medkoo Biosciences 艾美捷 Atogepant说明书
  6. 企业软文推广共有几个步骤?记住这三步
  7. 使用bilibili_api与pyttsx3制作简单的弹幕姬
  8. (转)我在上海奋斗五年 从月薪3500到700万
  9. 第一章 :Django安装与配置虚拟环境
  10. u8服务器配置文档,u8云服务器配置