CListCtrl(report风格)更新数据闪烁问题

xumaojun 2009-07-21 09:50:28
我在CListCtrl(report风格)控件中展示一些数据,每5秒更新一次,其中只有很少的数据会更新。现在问题是每次更新都deleteAll,再插入,这样CListCtrl就会闪烁。用了网上的方法:
m_ListCtrl.SetRedraw(FALSE);
//更新内容
m_ListCtrl.SetRedraw(TRUE);
m_ListCtrl.Invalidate();
m_ListCtrl.UpdateWindow();
可是还是会闪啊
...全文
261 13 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
greatws 2009-07-21
  • 打赏
  • 举报
回复
试试virtual list
lizifong 2009-07-21
  • 打赏
  • 举报
回复
invalidate(FALSE)
feilinhe 2009-07-21
  • 打赏
  • 举报
回复
LZ得方法在MSDN里面就是这样介绍的
CListCtrl调用deleteAll后再插入数据好像就是闪烁
我也没解决掉~
rayyear 2009-07-21
  • 打赏
  • 举报
回复
mark,学习
xumaojun 2009-07-21
  • 打赏
  • 举报
回复
这和使用SetRedraw函数应该一样的,每次更新还是会闪烁一下
killbug2004 2009-07-21
  • 打赏
  • 举报
回复
ls方法不错
对于自绘的可以使用LVS_EX_DOUBLEBUFFER属性
雪影 2009-07-21
  • 打赏
  • 举报
回复
在开始插入数据时,禁止窗口重绘制就行
使用::SendMessage(m_hWnd,WM_SETREDRAW,FALSE,0);
在插入数据结束之后重绘制窗口::SendMessage(m_hWnd,WM_SETREDRAW,TRUE,0);
xumaojun 2009-07-21
  • 打赏
  • 举报
回复
没人回答,自己顶一下
bigriverhorse 2009-07-21
  • 打赏
  • 举报
回复
还是不行就只能换个思路了,不要用DeleteAll()

自己找出变化的数据,然后就挨个Set上去。
xumaojun 2009-07-21
  • 打赏
  • 举报
回复
这个好像不行啊,我要的不是拉动时不闪烁,而是没有拉动时也不能闪烁啊
xumaojun 2009-07-21
  • 打赏
  • 举报
回复
我先看看,谢谢bigriverhorse
bigriverhorse 2009-07-21
  • 打赏
  • 举报
回复
楼主,我来救你了,不过不是我的原创,是别人的文章,

如果有用一定要感谢我喽。

解决列表框更新数据的时候的闪烁问题
xumaojun 2009-07-21
  • 打赏
  • 举报
回复
不过windows的任务管理器也是不停刷新,但是就没有闪烁,各位知道怎么实现吗?

15,980

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧