这是使用VS 2012编写MFC对话框程序的教程,主要是关于图片处理方面的操作,这些在MFC游戏、图片处理、软件编写中是经常要用到的知识。

一.创建项目
文件-新建项目-MFC应用程序-该页面使用“基于对话框”-完成即可。

注意:取消“使用Unicode库”,否则在使用AfxMessageBox会报错,没有一个可以转换的参数类型,要加AfxMessageBox(_T(“..”))。
运行结果:

二.添加背景Bitmap资源
在“资源视图”中右键鼠标Dialog处,选择“添加资源”。

在“添加资源”对话框中选择Bitmap,点击“导入”,选择工程文件res文件夹中的背景图片,它会添加一张IDB_BITMAP1的图片。

注意:在添加的图片中最好使用的是24位的BMP格式图片,图片应该放入res文件夹中。

三.编写代码
找到XXXDlg.cpp文件夹下的void CXXXDlg::OnPaint()函数,在else中进行修改。
1.首先注释掉CDialog::OnPaint()函数
CDialog是个对话框类,OnPaint()是成员函数,是对窗口进行重画,注释掉该语句否则会调用该语句不断重画,而不会执行下面添加的代码。注释掉该语句后最小化对话框后发现控件不可见,不过移动鼠标后又能看见。
2.添加代码
else {
//注释该语句:防止重复调用重画函数
//CDialog::OnPaint(); 
//添加代码对话框背景贴图
CPaintDC   dc(this);  
CRect   rect;  
GetClientRect(&rect);    //获取对话框长宽      
CDC   dcBmp;             //定义并创建一个内存设备环境
dcBmp.CreateCompatibleDC(&dc);             //创建兼容性DC
CBitmap   bmpBackground;   
bmpBackground.LoadBitmap(IDB_BITMAP1);    //载入资源中图片
BITMAP   m_bitmap;                         //图片变量               
bmpBackground.GetBitmap(&m_bitmap);       //将图片载入位图中
//将位图选入临时内存设备环境
CBitmap  *pbmpOld=dcBmp.SelectObject(&bmpBackground);
//调用函数显示图片StretchBlt显示形状可变
dc.StretchBlt(0,0,rect.Width(),rect.Height(),&dcBmp,0,0,m_bitmap.bmWidth,m_bitmap.bmHeight,SRCCOPY);    
}

四.运行结果
运行结果如下图所示:

由于我是刚学习VS2012编写MFC程序,在处理显示图片中遇到了很多问题,也参考了很多很多CSDN大神的博客,希望这篇博客能帮助大家。~~初学者学习,高手忽略。
其中主要感谢y30369的CSDN一篇使用VC++ MFC的博客,详细网址如下:
 http://blog.csdn.net/y30369/article/details/6467468
我很大程度上只是转载了它的内容,自己在通过VS2012实现该功能的。(Eastmount 2013-5-31-夜12点)

MFC VS2012对话框背景填图相关推荐

  1. MFC 对话框背景贴图

    1.建立一个全局的CBrush变量 2.在OnInitDlg里面写: CBitmap bmp; bmp.LoadBitmap(IDB_BITMAP1); m_Brush.CreatePatternBr ...

  2. MFC改变对话框背景颜色

    原文链接: http://blog.sina.com.cn/s/blog_59955afc0100spjz.html 方法一:调用CWinApp类的成员函数SetDialogBkColor来实现. - ...

  3. MFC改变对话框背景图片实例

    // TODO:  在此添加消息处理程序代码和/或调用默认值     CPaintDC dc(this); // device context for painting     CRect   rec ...

  4. MFC更换对话框背景图片

    添加位图资源 bitmap 所以其扩展名为 .bmp 而且不能是24位,最好是256色 替换代码 Onpaint()函数的else语句替换一下代码 //CDialog::OnPaint();//要禁止 ...

  5. MFC 基础知识:对话框背景添加图片和按钮Button添加图片

    很长时间没有接触MFC相关的知识了,我大概是在大二时候学习的MFC相关知识及图像处理,现在由于要帮个朋友完成个基于C++的程序,所以又回顾了下相关知识.的确,任何知识一段时间过后都比较容易忘记,但回顾 ...

  6. MFC_设置对话框背景图片

    MFC 设置对话框背景图片2010年08月06日 20:12MFC 设置对话框背景图片 基于VC6.0 (一) 在对话框类名上右键àAddWindows Message Handlerà为消息WM_P ...

  7. MFC如何让背景图随窗口大小改变

    ==> 学习汇总(持续更新) ==> 从零搭建后端基础设施系列(一)-- 背景介绍 刚开始做的时候,我理所当然的想,直接在OnPaint函数中改变图片的大小,但是发现,这样会导致图片出现如 ...

  8. c语言mfc怎么插入背景图片,MFC 对话框添加背景图片详细过程(两种方法)

    给对话框添加背景图片方法很多,在此贴出两种很常见的方法.一种是通过读取位图资源显示位图(BitMap) step: 1.创建内存设备上下文: 2.选择位图,将其装入内存设备上下文: 3.使用BitBl ...

  9. 重拾MFC小细节之动态更新对话框背景图片

    在大一时,学过MFC,不过那时刚接触编程,C/C++学完不久,跟重要的是没动手编程,后来又做ACM去了.现在大三了,各种实验课设老师都要求用VC可视化,于是借着机会学了点MFC皮毛,在此总结一些常用技 ...

最新文章

  1. 1.5 Double类
  2. cxf整合spring错误为:cvc-complex-type.2.4.c
  3. mfc中的.rc和.rc2出错fatal error RC1015: cannot open include file 'res\ModalD
  4. Python中FileIO
  5. MySQL 加锁处理分析(二)
  6. Python模块:配置文件解析器configparser
  7. 分享股票量化交易程序化模型的设计思路
  8. CSS命名规范(规则)常用的CSS命名规则
  9. 运行docker镜像,出现Exited (137) 5 seconds ago问题
  10. IEEE论文小技巧-pdf转eps使色彩保持RGB不变及去边框
  11. 新媒体运营黎想教程:活动运营策划的简略4个方式
  12. 今日的质量,明日的市场--谈谈软件登记测试
  13. Unity3D_(Shuriken粒子系统)制作简单的烟花爆炸效果
  14. otg android 键盘,使用USB OTG将手机、平板连上键盘、U盘
  15. arduino为何流行?
  16. MOOC哈工大2020C语言程序设计精髓练兵区编程题第九周
  17. [开源项目] 1. EMS
  18. The Unarchiver for Mac(mac解压缩神器)
  19. Androguard交叉引用Crossreferences(XREFs)
  20. Webdw1.0版本已经整合完毕发布到github上了

热门文章

  1. 配置两个不同kerberos认证中心的集群间的互信
  2. HDU - 3336 next运用+递推
  3. struts 权限控制
  4. 机器学习笔记——K-means
  5. 小知识汇总----不断更新中...
  6. SQL_Server_2008完全学习之第八章Transact-SQL编程
  7. ie里的button标签的一个bug
  8. vue前端服务器端口_解密智联招聘的大前端架构 Ada
  9. php简述一下并集交集差集,总结了一下js中的差集、交集、并集
  10. spring boot入门,看这篇文章就够了