在很多系统中出于美观的需要常常要设置背景图片。下面我介绍一种在客户区设置背景图片的简单方法。
1 .将背景bmp 图片导入到工程,资源ID 这里假设为 IDB_BITMAP1
2 .在视图类添加如下代码:
[cpp] view plaincopy
- void CSetBkMapView::OnDraw(CDC* pDC)
- {
- CSetBkMapDoc* pDoc = GetDocument();
- ASSERT_VALID(pDoc);
- if (!pDoc)
- return;
- // TODO: 在此处为本机数据添加绘制代码
- // 获取客户区大小
- CRect rcClient;
- GetClientRect(&rcClient);
- CBitmap bmp; // 定义一个位图变量
- CBitmap* oldBmp;
- CDC memDC;
- bmp.LoadBitmap(IDB_BITMAP1);
- // 获取位图信息
- BITMAP bm;
- bmp.GetBitmap( &bm );
- memDC.CreateCompatibleDC(pDC);
- oldBmp=memDC.SelectObject(&bmp); // 将位图资源选入内存DC
- // 在客户区绘制位图
- pDC->BitBlt(0,0,bm.bmWidth,bm.bmHeight,&memDC,0,0,SRCCOPY); memDC.SelectObject(oldBmp);// 将旧位图选回设备环境
- bmp.DeleteObject(); // 删除位图资源
- memDC.DeleteDC(); // 删除内存DC
- }
效果图如下: