MFC VS2012对话框背景填图

来源:互联网 发布:罗马全面战争2dlc 知乎 编辑:程序博客网 时间:2024/05/18 02:16

这是使用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点)

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 6个月的宝宝腹泻怎么办 六个月大的宝宝拉肚子怎么办 六个月宝宝着凉拉肚子怎么办 六个月婴儿着凉拉肚子怎么办 怀孕六个月着凉拉肚子怎么办 六个月的婴儿消化不好怎么办 六个月婴儿不好好吃奶怎么办 六个月婴儿消化不好怎么办 六个月婴儿肠胃不好怎么办 受了惊吓后睡眠不好怎么办 宝宝夏季吃饭不爱带围嘴怎么办 3岁宝宝爱看电视怎么办 新生儿晚上哭闹不睡觉怎么办 档案丢了怎么办失业证 三岁宝宝不合群怎么办 阴唇手术半月了疤痕增生怎么办 宝宝小阴唇黏连怎么办 6个月宝宝阴唇粘连怎么办? 高一孩子不爱上学怎么办 3岁宝宝外阴发红怎么办 40爸妈离婚我该怎么办 小儿吃糖卡住了怎么办 额头撞墙上肿了怎么办 宝宝额头撞肿了怎么办 小孩额头撞肿了怎么办 宝宝撞到额头肿了怎么办 小孩子上一年级语文很差了怎么办? 楼下说小孩太吵怎么办 托班的小孩太吵怎么办 宝宝两岁只会简单的词怎么办 我儿子的视力低怎么办 小孩子课文看书都不会读怎么办 宝宝衣服买小了怎么办 拉拉裤腰围小了怎么办 一周九个月宝宝发烧怎么办 8个月的婴儿37.7怎么办 宝宝发烧37度3怎么办 2岁宝宝发烧37度怎么办 3个月新生儿发烧怎么办 生完孩子肚子松弛怎么办 6个月婴儿高烧怎么办