系統(tǒng)在需要重畫窗口的時(shí)候會幫你用指定的背景色來搽除窗口??墒?,也許需要重畫的區(qū)域也許非常小?;蛘?,在你重畫這些東西之間還要經(jīng)過大量的計(jì)算才能開始。這個(gè)時(shí)候你可以禁止系統(tǒng)搽掉原來的圖象。直到你已經(jīng)計(jì)算好了所有的數(shù)據(jù),自己把那些需要搽掉的部分用背景色覆蓋掉(如:dc.FillRect(rect,&brush);rect是需要搽除的區(qū)域,brush是帶背景色的刷子),再畫上新的圖形。要禁止系統(tǒng)搽除你的窗口,可以重載OnEraseBkgnd()函數(shù),讓其直接返回pUE就可以了。如
BOOL CMyWin::OnEraseBkgnd(CDC* pDC)
{
return pUE;
//return CWnd::OnEraseBkgnd(pDC);//把系統(tǒng)原來的這條語句注釋掉。
}
BOOL CMyWin::OnEraseBkgnd(CDC* pDC)
{
return pUE;
//return CWnd::OnEraseBkgnd(pDC);//把系統(tǒng)原來的這條語句注釋掉。
}