一张很大的表格,有100多行,一列数据不停的更新,SetRedraw(FALSE)....SetRedraw(TRUE),InvalidateRect()整表格一起刷,就闪烁的,不用上面函数,一行行的刷,不闪烁,但很慢。请高手指点。

解决方案 »

  1.   

    你的表格是什么,是自绘的ListCtrl?用了内存DC么,如果用了应该不会闪烁,还有就是最好用更新单元格的函数类似SetItemText
      

  2.   

    更新的时候直接调用  UpdateData(TRUE);//刷新之前
                        UpdateData(FALSE);//刷新之后
      

  3.   

    如果 SetRedraw 还不行的话可能需要考虑重载 CListCtrl
      

  4.   

    我的表格控键是msflexgrid,UpdateData不管用,谁有更好点的办法
      

  5.   

    msflexgrid本来就很慢,因为它好像vb做的,建议用GridCtrl
      

  6.   

    谁有更好的办法解决msflexgrid表格刷新问题,夜深不眠者,你说的内存DC,具体该怎么做,给个例子。谢
      

  7.   

    把erase background中return掉,然后在Onpaint中把默认绘制的东西画到内存上,然后再画到界面上.
    选画到memDC上
    DefWindowProc( WM_PAINT, (WPARAM)memDC.GetSafeHdc(), 0 );
    然后再画到dc上
    dc.BitBlt(...);