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都刷了背景的啊,并且效果是一摸一样,真是没搞懂!
请赐教!
{
// 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都刷了背景的啊,并且效果是一摸一样,真是没搞懂!
请赐教!
...全文
相关推荐
【转】绘制_OnPaint和OnEraseBkgnd的联系
**刷新控制**:通过`Invalidate(TRUE)`与`Invalidate(FALSE)`的不同调用方式可以控制是否触发`OnEraseBkgnd`,从而影响窗口的绘制行为。
VC中对话框窗体背景透明而控件不透明
要实现对话框背景透明,我们需要覆盖OnEraseBkgnd函数,使其返回FALSE,阻止默认的背景清除过程。
MFC实现关机和隐藏任务栏
; // return TRUE unless you set the focus to a control // 异常: OCX 属性页应返回 FALSE}```在这里,`RGB(255, 255,
真正可用的透明按鈕程式碼(VC++)
为了实现透明,我们需要在这里返回TRUE,阻止默认的背景清除行为。这使得窗口不绘制背景,从而实现透明效果。
如何在MFC程序中调用OpenGL
(pDC); return TRUE; // 阻止默认背景擦除操作}```通过返回TRUE,我们告诉Windows不需要擦除背景,从而避免了闪烁。


界面
