这里介绍两种方法来为对话框加背景图片:
1,把位图加入到资源中,然后把位图ID改成自己方便记的那种ID,然后把资源加到对话框上即可
void AddBackImage(CDC *pDC){ CRect rect; GetClientRect(&rect);
CBitmap bitmap; bitmap.LoadBitmap(IDB_BITMAP2);
CDC memDC; memDC.CreateCompatibleDC(pDC); CBitmap *pOldBitmap = memDC.SelectObject(&bitmap); pDC->BitBlt(0,0,rect.Width(),rect.Height(),&memDC,0,0,SRCCOPY); pDC->SelectObject(pOldBitmap); memDC.DeleteDC(); bitmap.DeleteObject();}
在onpaint 里调用AddBackImage(&dc),即可实现添加背景。
2,运用loadimage来加载位图,并运用内存DC把加载的位图贴到对话框上。
void AddBackImage(CDC *pDC){
// 获取对话框的区域 CRect rect; GetClientRect(&rect);
// 加载位图到对话框中 CDC memDC; CBitmap bitmap; HBITMAP hBitmap; CBitmap *pOldBitmap= NULL; hBitmap = (HBITMAP)::LoadImage(NULL,"logbitmap.bmp", IMAGE_BITMAP,0,0,LR_LOADFROMFILE); if (hBitmap!=NULL) { bitmap.Attach(hBitmap); } else { ReleaseDC(&memDC);
} // 获取位图属性包括大小
BITMAP bmSize; bitmap.GetBitmap(&bmSize);
memDC.CreateCompatibleDC(pDC);
pOldBitmap = memDC.SelectObject(&bitmap); pDC->BitBlt(0,0,bmSize.bmWidth,bmSize.bmHeight,&memDC,0,0,SRCCOPY); memDC.SelectObject(pOldBitmap);
ReleaseDC(&memDC); bitmap.Detach(); bitmap.DeleteObject();}
在onpaint 里调用AddBackImage(&dc),即可实现添加背景。