1、導入Bitmap資源圖片,2、重載WM_PAINT ——>void CXXXDlg::OnPaint()
3、添加如下代碼:
CRect rect;
GetClientRect(&rect);
CDC dcMem;
dcMem.CreateCompatibleDC(&dc);
CBitmap bmpBackground;
bmpBackground.LoadBitmap(IDB_BITMAP_TOOL); //IDB_BITMAP_TOOL是你自己的圖對應的ID
BITMAP bitmap;
bmpBackground.GetBitmap(&bitmap);
CBitmap *pbmpOld=dcMem.SelectObject(&bmpBackground);
dc.StretchBlt(0,0,rect.Width(),rect.Height(),&dcMem,0,0,
bitmap.bmWidth,bitmap.bmHeight,SRCCOPY);
其他方法:
重寫WM_ERASEBKGND消息
BOOL CxxDialog::OnEraseBkgnd(CDC* pDC)
{
// CDialog::OnEraseBkgnd(pDC);//忘記要不要執行父類的這個了.
CDC memdc;
memdc.CreateCompatibleDC(pDC);
CBitmap bmp;
CBitmap *pOldBmp;
BITMAP bm;//用來保存圖片的長寬等信息
bmp.LoadBitmap(IDB_BITMAP1);
bmp.GetBitmap(&bm);
//將圖片選進緩沖區
pOldBmp = (CBitmap *)memdc.SelectObject(&bmp);
//如果圖片跟對話框的客戶區一樣大,直接用BitBlt就可以
//pDC->BitBlt(0, 0, rcWnd.Width(), rcWnd.Height(), &memdc, 0, 0, SRCCOPY);
//如果圖片比對話框的背景小,就要用StrechBlt來拉伸圖片
pDC->StrechBlt(0, 0, rcWnd.Width, rcWnd.Height(), &memdc, 0, 0, bm.bmWidth,bm.bmHeight, SRCCOPY);
//釋放DC
memdc.SelectObject(pOldBmp);
memdc.DeleteDC();
return TRUE;
}
其他方法:http://blog.csdn.net/ply421600/article/details/6692967
posted on 2013-05-29 11:02
王海光 閱讀(3650)
評論(1) 編輯 收藏 引用 所屬分類:
MFC