在CODEGURU看到一個MDI CLIENT以位圖為背景的例子,受到啟發,在DIALOG中相似地模仿了以下,效果很好。
主要要點是處理背景擦除消息時在DIALOG CLIENT區域畫位圖,代碼如下:
BOOL CBmpbgDlg::OnEraseBkgnd(CDC* pDC)
{
CRect rect;
GetClientRect(&rect);
BITMAP bm;
CDC dcMem;
m_pBmp->GetObject(sizeof(BITMAP),(LPVOID)&bm);
dcMem.CreateCompatibleDC(NULL);
CBitmap* pOldBitmap = dcMem.SelectObject(m_pBmp);
for (register int nX=0;nXBitBlt(nX,nY,bm.bmWidth,bm.bmHeight,&dcMem,0,0,SRCCOPY);
dcMem.SelectObject(pOldBitmap);
return TRUE;
}