在窗口显示时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)
本文介绍如何在MFC应用程序中使用三步法实现窗口背景位图的绘制:首先加载位图资源,接着创建兼容设备环境(DC),最后通过BitBlt或StretchBlt函数完成位图的绘制。
9238

被折叠的 条评论
为什么被折叠?



