在窗口显示时MFC是先擦除背景然后再绘制,会产生一个WM_ERASEBKGND。因此我们可以对这个消息响应,添加一个函数OnEraseBkgnd(CDC* pDC)。
第一步:装载一副位图
CBitmap bitmap ;
BITMAP bmp ;
bitmap.LoadBitmap(IDB_BITMAP1) ;
bitmap.GetBitmap(&bmp) ;
第二步:创建兼容性DC
CDC dcCompatible ;
dcCompatible.CreateCompatibleDC(pDC) ;
dcCompatible.SelectObject(&bitmap) ;
第三步:使用BitBlt()或StretchBlt()贴图
CRect rect ;
GetClientRect(&rect) ;
//pDC->BitBlt(0 , 0 , rect.Width() , rect.Height() ,
// &dcCompatible , 0 , 0 , SRCCOPY) ;
pDC->StretchBlt(0 , 0 , rect.Width() , rect.Height() ,
&dcCompatible , 0 , 0 , bmp.bmWidth , bmp.bmHeight , SRCCOPY)