我在OnDraw()中这样处理重画动作,按理应该没有闪烁了,但是实际的运行效果仍不佳,请问哪里有问题吗?
void CChartView::OnDraw(CDC* pDC)
{
    CPWODoc* pDoc = GetDocument();
    ASSERT_VALID(pDoc);
    // TODO: add draw code for native data here
    
    
    RECT cRect ;
    GetClientRect(&cRect) ;
    pDC->DPtoLP(&cRect) ; 
    SetRepaintRect(cRect) ;
    
    CDC dc; 
    CBitmap bitmap; 
    
    CBitmap* pOldBitmap; 
    CRect client; 
    CRect rect; 
    pDC->GetClipBox(client);  
    GetClientRect(rect);     if(dc.CreateCompatibleDC(pDC)) 
    {   
        if(bitmap.CreateCompatibleBitmap(pDC,rect.Width(), 
            rect.Height())) 
        { 
            OnPrepareDC(&dc,NULL); 
            pOldBitmap=dc.SelectObject(&bitmap); 
            dc.SelectClipRgn(NULL); 
            dc.IntersectClipRect(client); 
        } 
    }     CBrush brush; 
    if(!brush.CreateSolidBrush(RGB(189, 216, 244))) 
        return ; 
    brush.UnrealizeObject(); 
    dc.FillRect(client,&brush);
    
    if(m_pOrgChart != NULL)
    {
        if(m_bIsFirst)
        {
            m_pOrgChart->Draw(&dc, E_REPOS_REPAINT) ;
            
            m_bIsFirst = false ;        }else 
        {
            
            m_pOrgChart->Draw(&dc, E_NOTREPOS_REPAINT) ;         }    }    
    pDC->BitBlt(client.left,client.top,client.Width(),client.Height(), 
        &dc,client.left,client.top,SRCCOPY);
    
    dc.SelectObject(pOldBitmap); }