当你的程序中有用到ListCtrl控件时,而且ListCtrl中的Item又是可变的.不仅显示内容可变,而且显示条目也变化的时候.
你的程序设计可能会是这样
m_listctrl.DeleteAllItems();
....
然后再往ListCtrl一个一个的插入Item.
这样实现的话,ListCtrl中会闪动的厉害.尤其Item很多的情况下,有滚动条的情况下.
提供一个小技巧.在调用DeleteAllItems()之前
m_listctrl.SetRedraw(FALSE);
m_listctrl.DeleteAllItems();
....
m_listctrl.SetRedraw(TRUE);
在删除之前,先禁止控件刷新.
这种思路其实在很多界面的设计中常用到.尤其是涉及到很短时间内频繁刷新界面的操作.
over~
本文介绍了一种优化ListCtrl控件刷新的方法,在大量更新项时减少闪烁。通过在删除所有项前禁用重绘功能,可以有效提升用户体验。
239

被折叠的 条评论
为什么被折叠?



