在很多系統中出于美觀的需要常常要設定背景圖檔。下面我介紹一種在客戶區設定背景圖檔的簡單方法。
1 .将背景bmp 圖檔導入到工程,資源ID 這裡假設為 IDB_BITMAP1
2 .在視圖類添加如下代碼:
void CSetBkMapView::OnDraw(CDC* pDC)
{
CSetBkMapDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
if (!pDoc)
return;
// TODO: 在此處為本機資料添加繪制代碼
// 擷取客戶區大小
CRect rcClient;
GetClientRect(&rcClient);
CBitmap bmp; // 定義一個位圖變量
CBitmap* oldBmp;
CDC memDC;
bmp.LoadBitmap(IDB_BITMAP1);
// 擷取位圖資訊
BITMAP bm;
bmp.GetBitmap( &bm );
memDC.CreateCompatibleDC(pDC);
oldBmp=memDC.SelectObject(&bmp); // 将位圖資源選入記憶體DC
// 在客戶區繪制位圖
pDC->BitBlt(0,0,bm.bmWidth,bm.bmHeight,&memDC,0,0,SRCCOPY); memDC.SelectObject(oldBmp);// 将舊位圖選回裝置環境
bmp.DeleteObject(); // 删除位圖資源
memDC.DeleteDC(); // 删除記憶體DC
}
效果圖如下: