OnEraseBkgnd()返回TRUE和FALSE的区别
BOOL ChighchartDlg::OnEraseBkgnd(CDC* pDC)
{
// TODO: Add your message handler code here and/or call default
CBitmap bmp;
CBitmap *ptrBmpOld;
CDC dcMemory;
BITMAP bm;
CRect rect;
int i, j;
int nHor, nVer;
bmp.LoadBitmap(IDB_BITMAP1);
bmp.GetBitmap(&bm);
GetClientRect(rect);
nHor=rect.Width()/bm.bmWidth+1;
nVer=rect.Height()/bm.bmHeight+1;
dcMemory.CreateCompatibleDC(pDC);
ptrBmpOld=dcMemory.SelectObject(&bmp);
for(i=0; i<nHor; i++)
{
for(j=0; j<nVer; j++)
{
pDC->BitBlt
(
i*bm.bmWidth,
j*bm.bmHeight,
bm.bmWidth,
bm.bmHeight,
&dcMemory,
0,
0,
SRCCOPY
);
}
}
dcMemory.SelectObject(ptrBmpOld);
return FALSE;
//return CDialog::OnEraseBkgnd(pDC);
}
上面是我的一个刷对话框背景的代码,最后我返回的是FALSE,我把这句话改成return TRUE后发现结果是一样的,没有什么不同啊,请教一下,查看了一下MSDN:Nonzero if it erases the background; otherwise 0.看了还是不理解,字面意思是如果刷背景返回非0,如果不刷背景返回0,可我的程序不管返回TRUE还是FALSE都刷了背景的啊,并且效果是一摸一样,真是没搞懂!
请赐教!