设置单文档背景图片:(使用双缓存)
void CHappyfield3View::DrawBackgroud(CDC*pDC)//自定义的一个函数
{
//位图资源
CBitmap Bitmap;
Bitmap.LoadBitmap(IDB_FIELD);
//将位图存于内存
CDC MemDC;
MemDC.CreateCompatibleDC(pDC);
CBitmap *poldBitmap=MemDC.SelectObject(&Bitmap);
//获取位图的大小
BITMAP bm;
Bitmap.GetObject(sizeof(BITMAP),&bm);
//将位图放于缓存
pDC->BitBlt(0,0,bm.bmWidth,bm.bmHeight,&MemDC,0,0,SRCCOPY);
//显示位图
MemDC.SelectObject(poldBitmap);
}
设置对话框背景图片:(使用双缓存)
void CHappyfield6Dlg::OnPaint()
{
//CDialog::OnPaint();//要禁止这个调用
CPaintDC dc(this);
CRect rect;
GetClientRect(&rect);
CDC dcMem;
dcMem.CreateCompatibleDC(&dc);
CBitmap bmpBackground;
bmpBackground.LoadBitmap(IDB_FIELD);
BITMAP bitmap;
bmpBackground.GetBitmap(&bitmap);
CBitmap *pbmpOld=dcMem.SelectObject(&bmpBackground);
dc.SetStretchBltMode(COLORONCOLOR); //要使用这个如果不使用的话图片的像素会严重的失真
dc.StretchBlt(0,0,rect.Width(),rect.Height(),&dcMem,0,0,
bitmap.bmWidth,bitmap.bmHeight,SRCCOPY);
}