Clistctl控件如何显示固定的数目列表项(item)
在做一个将接收到的数据显示出来的界面(外部数据大概1ms就发送一次),因为数据信息是一个结构体,所以需要使用到多列的CListctl控件。现在想实现的功能是只显示3000条数据,小于3000条时用InsertItem()插入新的一行列表项,用SetItemText()写入每列的信息,大于3000条时,新接收到的数据显示在第3000行,剩下的数据全部上移。类似于一个一定长度的队列,新的数据push_back,头数据pop_front。
我现在的做法是有新的数据接收到时,先从第二行开始,将每行数据取出GetItemText(),然后再用SetItemText()复制到上一行,总共要执行2999次,最后再将新接收到的数据通过SetItemText()写到第3000行。
这么做有很大的问题,因为我的数据是1ms就接收到一条,现在感觉GetItemText()再SetItemText()到上一行,循环2999次会占用很多时间,导致新数据刷新到界面很慢。
请高手指导指导,有没有更好的方法?只显示固定3000行数据,每次新来的数据显示在最后一行,其余数据上移,第一条数据可以丢失,谢谢大家!