首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

CListCtrl界面刷新有关问题

2012-09-17 
CListCtrl界面刷新问题?请问一下高手:编程中我用到了CListCtrl, report style,两秒刷新一次,每刷新一次,我

CListCtrl界面刷新问题?
请问一下高手:
  编程中我用到了CListCtrl, report style,两秒刷新一次,每刷新一次,我都需要deleteAllItems, 然后再InsertItem,我要InsertItem很多项, 我发现闪烁很大, 我用这样方法:
  mList.ShowWindow(SW_HIDE);
  DeleteAllItem();
  for(...)
  insertItem;
  mList.ShowWindow(SW_SHOW);
我发现由于中间删除Item和插入Item需要时间比较长,刷新时就看到了背后的灰色Dialog了,效果也很不好, 各位大侠有啥好的方法没,可以更新数据时几乎看不到闪烁?多谢了!
   


[解决办法]
listctrl内容进行大数据量更新时,避免闪烁

m_list.SetRedraw(FALSE);
//更新内容
m_list.SetRedraw(TRUE);
m_list.Invalidate();
m_list.UpdateWindow();
  
或者参考

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclib/html/_mfc_cwnd.3a3a.setredraw.asp


其他相关内容
CListCtrl 使用技巧

http://blog.csdn.net/cobay/archive/2009/02/19/3908782.aspx
[解决办法]
禁止刷新,插入数据前 SetRedraw(false);
插入数据后
SetRedraw(true);
[解决办法]

探讨
listctrl内容进行大数据量更新时,避免闪烁

m_list.SetRedraw(FALSE);
//更新内容
m_list.SetRedraw(TRUE);
m_list.Invalidate();
m_list.UpdateWindow();

或者参考

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclib/html/_mfc_cwnd.3a3a.setredraw.asp


其他相关内容
CListCtrl 使用技巧

http://blog.csdn.net/cobay/archive/2009/02/19/3908782.aspx

[解决办法]
探讨
不要删除全部的ITEM, 一行一行修改ITEM的内容, 行不够的话就添加行, 行多了再把后面的删了就是,

这个我做过, 我的一秒刷新一次, 都没感觉到有什么闪烁!

热点排行