本帖最后由 VisualEleven 于 2014-05-21 11:44:28 编辑

解决方案 »

  1.   

    刷新窗口,Invalidate(TRUE); //刷掉背景
    Invalidate(FALSE); //保留背景
      

  2.   

    不在用Sleep(1000);用定时器SetTimer,通过定时器去改变i的值(i为全局变量)并且调用InvalidateRect去刷新视图绘制,OnDraw里就不用while了直接用i
      

  3.   

    用定时器吧,SetTimer、OnTimer()函数中修改坐标,然后调用Invalidate/InvalidateRect()强制刷新,OnPaint/OnDraw()函数中绘图。
      

  4.   

    用双缓冲绘图,在OnDraw里面先擦出背景再画。
    在OnDraw里面,加上这几行:CRect rc;
    GetClientRect(&rc);
    dc.FillSolidRect(&rc, RGB(255,255, 255));用白色背景擦除双缓冲一定要用,否则不仅闪也慢。