把重绘背景函数设置其返回值为TRUE;还不行的话,只好用比较麻烦的双缓冲处理.具体见http://www.codeproject.com/gdi/flickerfree.asp

解决方案 »

  1.   

    双缓冲创建一个内存位图
    先把图像画到内存中
    再用bitblt一次内存位图拷贝到窗口上
      

  2.   

    void CDuibiView::OnDraw(CDC* pDC)
    {
    CDuibiDoc* pDoc = GetDocument();
    ASSERT_VALID(pDoc);
    // TODO: add draw code for native data here CBitmap map;
    map.LoadBitmap(IDB_BITMAP1);
    CDC MenDC;
    MenDC.CreateCompatibleDC(pDC);  
    BITMAP bm;
    map.GetBitmap(&bm);
    CBitmap* oldbitmap=MenDC.SelectObject(&map); 
    pDC->BitBlt(0,0,bm.bmWidth,bm.bmHeight,&MenDC,0,0,SRCCOPY);
    MenDC.SelectObject(&oldbitmap);
    }
    这样是双缓冲吗