MFC VS2012对话框背景填图
这是使用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对话框背景填图相关推荐
- MFC 对话框背景贴图
1.建立一个全局的CBrush变量 2.在OnInitDlg里面写: CBitmap bmp; bmp.LoadBitmap(IDB_BITMAP1); m_Brush.CreatePatternBr ...
- MFC改变对话框背景颜色
原文链接: http://blog.sina.com.cn/s/blog_59955afc0100spjz.html 方法一:调用CWinApp类的成员函数SetDialogBkColor来实现. - ...
- MFC改变对话框背景图片实例
// TODO: 在此添加消息处理程序代码和/或调用默认值 CPaintDC dc(this); // device context for painting CRect rec ...
- MFC更换对话框背景图片
添加位图资源 bitmap 所以其扩展名为 .bmp 而且不能是24位,最好是256色 替换代码 Onpaint()函数的else语句替换一下代码 //CDialog::OnPaint();//要禁止 ...
- MFC 基础知识:对话框背景添加图片和按钮Button添加图片
很长时间没有接触MFC相关的知识了,我大概是在大二时候学习的MFC相关知识及图像处理,现在由于要帮个朋友完成个基于C++的程序,所以又回顾了下相关知识.的确,任何知识一段时间过后都比较容易忘记,但回顾 ...
- MFC_设置对话框背景图片
MFC 设置对话框背景图片2010年08月06日 20:12MFC 设置对话框背景图片 基于VC6.0 (一) 在对话框类名上右键àAddWindows Message Handlerà为消息WM_P ...
- MFC如何让背景图随窗口大小改变
==> 学习汇总(持续更新) ==> 从零搭建后端基础设施系列(一)-- 背景介绍 刚开始做的时候,我理所当然的想,直接在OnPaint函数中改变图片的大小,但是发现,这样会导致图片出现如 ...
- c语言mfc怎么插入背景图片,MFC 对话框添加背景图片详细过程(两种方法)
给对话框添加背景图片方法很多,在此贴出两种很常见的方法.一种是通过读取位图资源显示位图(BitMap) step: 1.创建内存设备上下文: 2.选择位图,将其装入内存设备上下文: 3.使用BitBl ...
- 重拾MFC小细节之动态更新对话框背景图片
在大一时,学过MFC,不过那时刚接触编程,C/C++学完不久,跟重要的是没动手编程,后来又做ACM去了.现在大三了,各种实验课设老师都要求用VC可视化,于是借着机会学了点MFC皮毛,在此总结一些常用技 ...
最新文章
- 1.5 Double类
- cxf整合spring错误为:cvc-complex-type.2.4.c
- mfc中的.rc和.rc2出错fatal error RC1015: cannot open include file 'res\ModalD
- Python中FileIO
- MySQL 加锁处理分析(二)
- Python模块:配置文件解析器configparser
- 分享股票量化交易程序化模型的设计思路
- CSS命名规范(规则)常用的CSS命名规则
- 运行docker镜像,出现Exited (137) 5 seconds ago问题
- IEEE论文小技巧-pdf转eps使色彩保持RGB不变及去边框
- 新媒体运营黎想教程:活动运营策划的简略4个方式
- 今日的质量,明日的市场--谈谈软件登记测试
- Unity3D_(Shuriken粒子系统)制作简单的烟花爆炸效果
- otg android 键盘,使用USB OTG将手机、平板连上键盘、U盘
- arduino为何流行?
- MOOC哈工大2020C语言程序设计精髓练兵区编程题第九周
- [开源项目] 1. EMS
- The Unarchiver for Mac(mac解压缩神器)
- Androguard交叉引用Crossreferences(XREFs)
- Webdw1.0版本已经整合完毕发布到github上了