如图,有时候我从点击了某个item后再去点击另外一个item时画面会有点闪烁,有时也会没有这种现象请问用什么方法可以让它不闪?

解决方案 »

  1.   

    不要全部刷新,只刷新需要刷新的地方 
    用CPaintDC
    OnEraseBkgnd返回TRUE
    删除默认背景白色画刷
      

  2.   


    必须自己定义一个新的CMyListCtrl
    然后重载类内部相应的OnPaint OnEraseBkgnd,
    双缓冲是一种好方法,单具体要看你的程序希望实现什么功能。
      

  3.   

    以前看过楼主发的帖子,看来已经解决了选中框的位置问题,而且是自绘制的,效果还不错,我以前也做过类似的程序,不过是在VIEW里画的, 点击了某个item后界面刷新的代码是不是你自己写的,是的话就好解决了,你可能是用了InvalidateRect();
    可以用双缓冲,重新画.
      

  4.   

    这个 不是双缓冲的问题, 应该是SetFocus的问题. 你点击item时  , 先设置listctrl获得焦点, 再设置上次的item获得焦点,然后就是设置现在item的图片或者状态 了.
      

  5.   

    我没有写过刷新的代码,绘制过程都在custom draw里面,本身的消息没有改变,昨天在custom draw里面用了一下双缓冲的方法,结果还是那样,所以今天在考虑着要不要继承Clistctrl类来画
      

  6.   

    请问“再设置上次的item获得焦点”是什么意思?