Chinaunix首页 | 论坛 | 博客
  • 博客访问: 5596
  • 博文数量: 5
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 62
  • 用 户 组: 普通用户
  • 注册时间: 2013-05-05 13:08
文章分类
文章存档

2013年(5)

我的朋友

分类: C/C++

2013-05-08 15:53:43

这是写的第一篇博客,就不求个多么的高深的技术问题了,就分享下我现在做毕设时遇见的问题和解决方法吧,希望对大家有所帮助。

问题:如何在视图窗口加载一张小图片作为背景,且充满整个View窗口呢?

方法:步骤如下

1.先创建或者添加一张资源图片(Bitmap),格式为bmp的,ID号 我这里为IDB_BITMAP1

2.在工程的View类里面定义两个变量:

public:

//为了给视图类画上背景 定义以下两个变量

CBitmap *m_bitmap; 
CBrush m_brushbackground;

3.在类的构造函数里添加如下代码:

m_bitmap = new CBitmap; 
m_bitmap ->LoadBitmap(IDB_BITMAP1); 
m_brushbackground.CreatePatternBrush(m_bitmap);//这三行是为了给视图窗口加载背景

4.打开类向导,用VS2012的右击这个C....View类然后选择类向导,在消息里面找到WM_ERASEBKGND,在右边点击添加处理程序,然后点编辑代码,ok。

5.然后在函数体添加代码如下:

CView::OnEraseBkgnd(pDC); 
CDC dcMem; 
CClientDC dc(this); 
HBITMAP hbit; 

dcMem.CreateCompatibleDC(&dc); 
hbit = (HBITMAP)dcMem.SelectObject(m_bitmap); 
CRect rect; 
GetClientRect(&rect); 
pDC->FillRect(rect,&m_brushbackground);//充满整个客户区 
//GetDC()->BitBlt(10,10,400,300,&dcMem,0,0,SRCCOPY);//加载到某个固定位置 
//return CView::OnEraseBkgnd(pDC); 
return 0;

切记:一定要把自动加上的return  CView::OnEraseBkgnd(pDC);注释起来 要不然显示不出来背景的哦,然后写上return 0;

好了 ,这样应该就可以了  希望对你有用!!

本文转载自博客园,原文链接:http://www.cnblogs.com/CXR-Surpass/archive/2013/05/06/3063043.html

阅读(35) | 评论(0) | 转发(0) |
0

上一篇:没有了

下一篇:剑意凛然 锋芒毕露 专访剑灵国服首杀团队

给主人留下些什么吧!~~