这里介绍两种方法来为对话框加背景图片:
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),即可实现添加背景。