在MDI主窗口中設置圖像背景

1.創建一個多文檔應用程序,工程名爲NoChild。
2.導入背景位圖IDB_CAR
3.添加新的類CBgWnd。基類選擇generic CWnd類。
4.重載CBgWnd類的OnEraseBkgnd(CDC *pDC)函數。
BOOL CBgWnd::OnEraseBkgnd(CDC* pDC) 
{
// TODO: Add your message handler code here and/or call default
CDC memDc;
CBitmap bmp;
CRect clientRect;
BITMAP bitmap;

GetClientRect(&clientRect);
bmp.LoadBitmap(IDB_CAR);
bmp.GetObject(sizeof(BITMAP), &bitmap);
memDc.CreateCompatibleDC(pDC);

CBitmap *pOldBmp = memDc.SelectObject(&bmp);

pDC->StretchBlt(clientRect.left, clientRect.top, clientRect.Width(), clientRect.Height(), &memDc, 0, 0, bitmap.bmWidth, bitmap.bmHeight, SRCCOPY);

memDc.SelectObject(pOldBmp);
memDc.DeleteDC();

return TRUE;
//return CWnd::OnEraseBkgnd(pDC);
}


5.重載CBgWnd類的OnSize(UINT nType, int cx, int cy) 函數。
void CBgWnd::OnSize(UINT nType, int cx, int cy) 
{
CWnd::OnSize(nType, cx, cy);

// TODO: Add your message handler code here
Invalidate();
}


6.在CMainFrame類中添加CBgWnd類型變量。
CBgWnd m_bgWnd;


7.在CMainFrame類OnCreate函數中添加
if (!m_bgWnd.SubclassWindow(m_hWndMDIClient))
{
return -1;

}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章