我想将对话框背景改为我自己的设计好的图片,我添加了一个Bitmap 资源,并在OnPaint()下加入了如下代码,但是图片的大小和对话框不匹配,请问我该怎么设置才能使之刚好覆盖对话框?如果我不想在OnPaint()下加入代码,是否有其他更好的方式?望高人们指点!
代码如下:
CDC cdc_obj;
CBitmap bitmap_obj;
CBitmap* pBitmapOld;
bitmap_obj.LoadBitmap(IDB_BACKGROUND);
//create memory dc
cdc_obj.CreateCompatibleDC(&dc);
//load background bmp
pBitmapOld = cdc_obj.SelectObject(&bitmap_obj);
//paint to window.
dc.BitBlt(
0,0,
600,500,
&cdc_obj,0,0,SRCCOPY
);
cdc_obj.SelectObject(pBitmapOld);
cdc_obj.DeleteDC();
CDialog::OnPaint();
代码如下:
CDC cdc_obj;
CBitmap bitmap_obj;
CBitmap* pBitmapOld;
bitmap_obj.LoadBitmap(IDB_BACKGROUND);
//create memory dc
cdc_obj.CreateCompatibleDC(&dc);
//load background bmp
pBitmapOld = cdc_obj.SelectObject(&bitmap_obj);
//paint to window.
dc.BitBlt(
0,0,
600,500,
&cdc_obj,0,0,SRCCOPY
);
cdc_obj.SelectObject(pBitmapOld);
cdc_obj.DeleteDC();
CDialog::OnPaint();
CBitmap bmp;
CBitmap *pOldBmp;
bmp.DeleteObject();
bmp.LoadBitmap(IDB_BACKGROUND);
bmp.GetBitmap(&b);
CDC *dc = this->GetDC();
dc->SetBkMode(TRANSPARENT);
CDC bmpDc;
bmpDc.CreateCompatibleDC(dc);
pOldBmp = (CBitmap*)bmpDc.SelectObject(&bmp);
dc->BitBlt(0, 0, b.bmWidth, b.bmHeight, &bmpDc, 0, 0, SRCCOPY);
bmpDc.SelectObject(pOldBmp);
MoveWindow(0, 0, b.bmWidth, b.bmHeight);