1、导入Bitmap资源图片,2、重载WM_PAINT ——>void CXXXDlg::OnPaint()
3、添加如下代码:
CRect rect;
GetClientRect(&rect);
CDC dcMem;
dcMem.CreateCompatibleDC(&dc);
CBitmap bmpBackground;
bmpBackground.LoadBitmap(IDB_BITMAP_TOOL); //IDB_BITMAP_TOOL是你自己的图对应的ID
BITMAP bitmap;
bmpBackground.GetBitmap(&bitmap);
CBitmap *pbmpOld=dcMem.SelectObject(&bmpBackground);
dc.StretchBlt(0,0,rect.Width(),rect.Height(),&dcMem,0,0,
bitmap.bmWidth,bitmap.bmHeight,SRCCOPY);
其他方法:
重写WM_ERASEBKGND消息
BOOL CxxDialog::OnEraseBkgnd(CDC* pDC)
{
// CDialog::OnEraseBkgnd(pDC);//忘记要不要执行父类的这个了.
CDC memdc;
memdc.CreateCompatibleDC(pDC);
CBitmap bmp;
CBitmap *pOldBmp;
BITMAP bm;//用来保存图片的长宽等信息
bmp.LoadBitmap(IDB_BITMAP1);
bmp.GetBitmap(&bm);
//将图片选进缓冲区
pOldBmp = (CBitmap *)memdc.SelectObject(&bmp);
//如果图片跟对话框的客户区一样大,直接用BitBlt就可以
//pDC->BitBlt(0, 0, rcWnd.Width(), rcWnd.Height(), &memdc, 0, 0, SRCCOPY);
//如果图片比对话框的背景小,就要用StrechBlt来拉伸图片
pDC->StrechBlt(0, 0, rcWnd.Width, rcWnd.Height(), &memdc, 0, 0, bm.bmWidth,bm.bmHeight, SRCCOPY);
//释放DC
memdc.SelectObject(pOldBmp);
memdc.DeleteDC();
return TRUE;
}
其他方法:http://blog.csdn.net/ply421600/article/details/6692967
posted on 2013-05-29 11:02
王海光 阅读(3601)
评论(1) 编辑 收藏 引用 所属分类:
MFC