主题:返回值的问题
BOOL CP18CheckBoxDemoDlg::OnEraseBkgnd(CDC* pDC)
{
// TODO: Add your message handler code here and/or call default
//WM_ERASEBKGND消息响应函数
//先绘制默认的背景
BOOL bRet=CDialog::OnEraseBkgnd(pDC);
int nRed,nGreen,nBlue;
nRed=m_chk_red.GetCheck()?255:0;
nGreen=m_chk_green.GetCheck()?255:0;
nBlue=m_chk_blue.GetCheck()?255:0;
//根据选择组成色。
COLORREF crFore=RGB(nRed,nGreen,nBlue);
//创建指定色的画刷
CBrush brush;
brush.CreateSolidBrush(crFore);
//将画刷选入DC
CBrush *pOldBrush=pDC->SelectObject(&brush);
//根据选择绘制矩形或圆形
RECT rc={10,10,150,120};
if(m_rd_rect.GetCheck()){pDC->Rectangle(&rc);}
else pDC->Ellipse(&rc);
//恢复DC原状
// pDC->SelectObject(pOldBrush);
//return bRet;
return CDialog::OnEraseBkgnd(pDC);
}
请问:为什么以上程序无显示,但是用return bRet,就正常。
{
// TODO: Add your message handler code here and/or call default
//WM_ERASEBKGND消息响应函数
//先绘制默认的背景
BOOL bRet=CDialog::OnEraseBkgnd(pDC);
int nRed,nGreen,nBlue;
nRed=m_chk_red.GetCheck()?255:0;
nGreen=m_chk_green.GetCheck()?255:0;
nBlue=m_chk_blue.GetCheck()?255:0;
//根据选择组成色。
COLORREF crFore=RGB(nRed,nGreen,nBlue);
//创建指定色的画刷
CBrush brush;
brush.CreateSolidBrush(crFore);
//将画刷选入DC
CBrush *pOldBrush=pDC->SelectObject(&brush);
//根据选择绘制矩形或圆形
RECT rc={10,10,150,120};
if(m_rd_rect.GetCheck()){pDC->Rectangle(&rc);}
else pDC->Ellipse(&rc);
//恢复DC原状
// pDC->SelectObject(pOldBrush);
//return bRet;
return CDialog::OnEraseBkgnd(pDC);
}
请问:为什么以上程序无显示,但是用return bRet,就正常。