求mfc界面刷新有效区域问题
onPaint()
{ CRect rc;
GetUpdateRect(&rc);
TRACE("%d %d ",rc.Width(),rc.Height());
CPaintDC dc(this);
}
OnEraseBkgnd()
{
CBrush brush(RGB(red,100,200));
CRect rcClient(0,0,0,0);
GetClientRect(&rcClient);
pDC->FillRect(rcClient, &brush);
return 1;
}
OnBnClickedButton1()
{
red = 0;
InvalidateRect(CRect(0,0,100,100));
InvalidateRect(CRect(120,120,200,200));
InvalidateRect(CRect(220,220,260,260));
}
本来我的认知里面,多个invalidaterect后,应该会有个合并无效区域的地方,cpaintdc里面只有一个m_ps->rcPaint
那么合并也应该都合到这里来,看getupdaterect也是这个理论,但是为什么实际画出来的时候,界面上出现了3个框,不应该
重绘的就是这个rcpaint区域么,那应该就一个框才对?
求懂的人指教