重写OnEraseBkgnd(CDC* pDC)函数为如下:
BOOL CchessDlg::OnEraseBkgnd(CDC* pDC)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
HBITMAP hBmp = (HBITMAP)LoadImage(AfxGetInstanceHandle(),"images//backfile.bmp",IMAGE_BITMAP,0,0,LR_LOADFROMFILE);
if(hBmp==NULL)
{
MessageBox("请检查您的背景图片文件backfile.bmp!","提示");
return CDialog::OnEraseBkgnd(pDC);
}
HDC hMemDC = CreateCompatibleDC(pDC->m_hDC);
CBitmap bmp;
bmp.Attach(hBmp);
BITMAP bm;
bmp.GetBitmap(&bm);
SelectObject(hMemDC,hBmp);
CRect rc;
GetClientRect(rc);
StretchBlt(pDC->m_hDC,0,0,rc.Width(),rc.Height(),hMemDC,0,0,bm.bmWidth,bm.bmHeight,SRCCOPY);
bmp.DeleteObject();
return TRUE;
}