桌面图标闪烁如何解决决CListCtrl的数据更新时候的闪烁问题

> 博客详情
程序需要从数据库某一个活动表中,定时取数据,更新界面的列表显示,比如有20条数据(变化),则这20数据 不停的变化,(通过其他程序实现)
方案(1),先在列表中查找,后插入比如每条记录都有一个唯一的编号,查询的时候,首先查找该编号的记录在列表中是否存在,如果存在则找到Item后,直接更新各个列的数据,如
LVFINDINFO& lv.flags=LVFI_STRING;& lv.psz=“关键字”;& int nItem=m_list.FindItem(&lv,-1);
如果Item&0则直接更新数据,用SetItemText(nItem,0,“值1”),。。。。
如果Item&0,则插入一条Item,InsertItem(),然后SetItemText(nItem,0,“”);。。。。
每次查询之前,把当前的记录全部删掉,然后在依次插入到列表框中。
////////////////////////////////其他方法
//方法1:采用禁止重绘的方法
&& SetWindowRedraw(hwnd, FALSE);& & ... add the items ...&
SetWindowRedraw(hwnd, TRUE);
方法2:采用锁定窗口,禁止刷新的方法
m_list.LockWindowUpdate()
m_list.SetItemText()& //修改后& m_list.UnlockWindowUpdate()
方法3:采用虚拟列表技术。
&&&&&&& 每次都把数据先放到一个数组中,然后根据显示的多少更新数据。需要LVN_GETDISPINFO消息
即(OnGetdispinfoList(NMHDR* pNMHDR, LRESULT* pResult))函数,
方法 4:使用内存缓冲技术
& 虚拟表可以解决,如果数据更新还是大量闪烁,需要进行对OnDraw函数修改,采用memDC可以实现无闪烁方案
& 方法5:重载一下OnEraseBkgnd(CDC* pDC)函数
重载一下OnEraseBkgnd(CDC* pDC)函数,在背景中把客户区画成白色的试试;如果不行的话,插入数据的时候计算一下数据区的大小,如果数据区覆盖整个客户区,则不画背景。以前是这么做的,1s更新几十条数据还是看不出闪烁的。
人打赏支持
码字总数 110872
支付宝支付
微信扫码支付
打赏金额: ¥
已支付成功
打赏金额: ¥快捷键ClistCtrl解决大数据量闪烁问题_Windows_ThinkSAAS
快捷键ClistCtrl解决大数据量闪烁问题
快捷键ClistCtrl解决大数据量闪烁问题
内容来源: 网络
快捷键ClistCtrl解决大数据量闪烁问题
设: 控件名称:m_List
1.先锁定窗口,不进行刷新
m_List.LockWindowUpdate();
2.设定列表不进行重画
m_List.SetRedraw(FALSE);
3.清空列表,删除历史数据
m_List.DeleteAllItems();
4.窗口解锁,允许刷新。否则系统的视图也会进行闪烁
m_List.UnlockWindowUpdate();
5.向列表中循环增加记录
m_List.InsertItems();
6.重画列表
m_List.SetRedraw(TRUE);
作者 zwei-wuwen
PHP开发框架
开发工具/编程工具
服务器环境
ThinkSAAS商业授权:
ThinkSAAS为用户提供有偿个性定制开发服务
ThinkSAAS将为商业授权用户提供二次开发指导和技术支持
让ThinkSAAS更好,把建议拿来。
开发客服微信后使用快捷导航没有帐号?
查看: 4377|回复: 17
EVC CListCtrl 闪烁的问题
在线时间25 小时
TA的帖子TA的资源
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
在定时器里 更新 CListCtrl里面的值,结果闪烁的特别厉害,谁见到过这中问题。如何解决的?请指教。
在线时间0 小时
TA的帖子TA的资源
一粒金砂(中级), 积分 10, 距离下一级还需 190 积分
一粒金砂(中级), 积分 10, 距离下一级还需 190 积分
你用了双缓存之类的去闪的没有啊?
再就是OnEraseBkgnd函数中不执行系统自带函数
在线时间0 小时
TA的帖子TA的资源
一粒金砂(初级), 积分 2, 距离下一级还需 3 积分
一粒金砂(初级), 积分 2, 距离下一级还需 3 积分
试了不管用!
在线时间1 小时
TA的帖子TA的资源
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
& & & & m_List.SetItemText(5,1,L&100000&);
& & & & m_List.SetItemText(5,4,L&100000&);
& & & & m_List.SetItemText(4,1,L&1&);
& & & & m_List.SetItemText(4,4,L&2&);
& & & & m_List.SetItemText(3,1,L&3&);
& & & & m_List.SetItemText(3,4,L&4&);
& & & & m_List.SetItemText(2,1,L&5&);
& & & & m_List.SetItemText(2,4,L&6&);
& & & & m_List.SetItemText(1,1,L&7&);
& & & & m_List.SetItemText(1,4,L&8&);
用这些命令刷新的界面。
在线时间1 小时
TA的帖子TA的资源
一粒金砂(初级), 积分 2, 距离下一级还需 3 积分
一粒金砂(初级), 积分 2, 距离下一级还需 3 积分
SetRedraw(FALSE);
SetRedraw(TRUE);
也试了啊?
在线时间1 小时
TA的帖子TA的资源
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
先试的这个!
在线时间1 小时
TA的帖子TA的资源
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
要重绘控件吧,用系统默认的Draw过程,难解决这个问题的
在线时间2 小时
TA的帖子TA的资源
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
在你m_List.SetItemText之前用SetRedraw(FALSE);
所有的设置完后用SetRedraw(TRUE);
在线时间0 小时
TA的帖子TA的资源
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
我上次的闪就是把这两个都用起来就好了SetRedraw和双缓存OnEraseBkgnd直接返回
在线时间0 小时
TA的帖子TA的资源
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
不过我的drawitem自己写的,遇到了一个小图标闪的问题,我的问题试系统不支持半透明,我设置了半透明造成了,好像就没其他的问题了
在线时间1 小时
TA的帖子TA的资源
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
双缓冲区代码你是怎么写的?
在线时间0 小时
TA的帖子TA的资源
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
ILD_TRANSPARENT你看有没有这个,draw的过程中如果系统不支持TRANSPARENT就去掉这个参数。
在线时间0 小时
TA的帖子TA的资源
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
我这个好像都没用到双缓存,滚动条用到了
在线时间0 小时
TA的帖子TA的资源
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
我把设置文本透明功能去掉后,还是没有效果。
在线时间1 小时
TA的帖子TA的资源
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
那我就真不知道是什么问题了哦
在线时间2 小时
TA的帖子TA的资源
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
那我就真不知道是什么问题了哦
在线时间0 小时
TA的帖子TA的资源
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
解决了谢谢!
在线时间1 小时
TA的帖子TA的资源
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
楼主是怎么解决的。能详细说说吗?我也遇到了与您同样的情况,在EVC4.2和EVC6.0中,在定时器中刷新ListCtrl控件,会出现闪烁,从上到下的闪烁。已经用了双缓冲(用了双缓冲后,闪烁是整个CListCtrl的内容闪烁,不是从上到下的闪烁,主要是因为双缓冲是整幅图片向屏幕输出),SetReDraw方法,仍不能解决问题。
Powered by
逛了这许久,何不进去瞧瞧?2017年1月 VC/MFC大版内专家分月排行榜第二2016年11月 VC/MFC大版内专家分月排行榜第二2016年4月 VC/MFC大版内专家分月排行榜第二2014年11月 VC/MFC大版内专家分月排行榜第二2014年1月 VC/MFC大版内专家分月排行榜第二2013年10月 VC/MFC大版内专家分月排行榜第二2013年9月 VC/MFC大版内专家分月排行榜第二2013年6月 VC/MFC大版内专家分月排行榜第二2013年4月 VC/MFC大版内专家分月排行榜第二2012年6月 VC/MFC大版内专家分月排行榜第二
2016年12月 VC/MFC大版内专家分月排行榜第三2016年10月 VC/MFC大版内专家分月排行榜第三2016年2月 VC/MFC大版内专家分月排行榜第三2015年10月 VC/MFC大版内专家分月排行榜第三2015年7月 VC/MFC大版内专家分月排行榜第三2012年10月 VC/MFC大版内专家分月排行榜第三
2011年 总版技术专家分年内排行榜第三2010年 总版技术专家分年内排行榜第三
2012年 总版技术专家分年内排行榜第五
2017年1月 VC/MFC大版内专家分月排行榜第二2016年11月 VC/MFC大版内专家分月排行榜第二2016年4月 VC/MFC大版内专家分月排行榜第二2014年11月 VC/MFC大版内专家分月排行榜第二2014年1月 VC/MFC大版内专家分月排行榜第二2013年10月 VC/MFC大版内专家分月排行榜第二2013年9月 VC/MFC大版内专家分月排行榜第二2013年6月 VC/MFC大版内专家分月排行榜第二2013年4月 VC/MFC大版内专家分月排行榜第二2012年6月 VC/MFC大版内专家分月排行榜第二
2016年12月 VC/MFC大版内专家分月排行榜第三2016年10月 VC/MFC大版内专家分月排行榜第三2016年2月 VC/MFC大版内专家分月排行榜第三2015年10月 VC/MFC大版内专家分月排行榜第三2015年7月 VC/MFC大版内专家分月排行榜第三2012年10月 VC/MFC大版内专家分月排行榜第三
2012年12月 总版技术专家分月排行榜第一2012年10月 总版技术专家分月排行榜第一2012年9月 总版技术专家分月排行榜第一2012年8月 总版技术专家分月排行榜第一
2012年11月 总版技术专家分月排行榜第三
本帖子已过去太久远了,不再提供回复功能。

我要回帖

更多关于 电脑屏幕闪烁如何解决 的文章

 

随机推荐