OnEraseBkgnd()返回TRUE和FALSE的区别

xiaoakang xiaoakang 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
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都刷了背景的啊,并且效果是一摸一样,真是没搞懂!
请赐教!
...全文
评论 4
收藏 已收藏
分享
返回顶部
xiaoakang
界面 15,976 成员 115,866 内容