Jul 6, 2008

ListCtrl的删除功能(继续)

昨天写的那段删除功能代码今天调试时发现了个问题
表格的数据量不是很大,比如,只有4行的时候
刷新时还是会有闪烁的现象,很奇怪

我觉得可能是删除的时候按我写的那个循环
for(i=0;i{
DeleteItem(i);
}
变成每删除一个表格行就要刷一次屏幕,可能就是因为这样造成了闪烁
我要用这表格实现的功能是这样的
与服务器端通信,服务器每隔一定的时间间隔发送过来一个数据链表
客户端接收链表,解析后显示在表格里
这里就存在一个更新的问题,服务器的数据链表是动态变化的
而客户端这边的送显更新存在更新方式的问题

我原本想写个比较函数,比较下链表的不同,可是,这样的开销太大了
不仅是内存空间多花费,比较时间也是CPU开销啊
还不如直接删除原有item然后重新填充一下表格呢
昨天没有查MSDN,凭印象写了个DeleteItem(i)函数上去
今天查了下MSDN,原来还有个DeleteAllItems(),还不带参
一改下函数
果然不闪烁了

这才发现原来程序的世界里跟我们想的不同
越笨的方法可能越高效啊
谨记,谨记

No comments:

Powered By Blogger