2009-10-22 40 views
1

我有一个数据流,我想将它放在容器中。该容器的大小可以是固定的,也可以在运行时动态约束到一定的大小。后者可能是优选的。wxVListBox与“动态”数据

当容器是满的,最旧的数据将被删除。

我想用显示这个数据wxVListBox因为我需要完全控制显示。然而,有一个问题:到的OnDrawItem呼叫不是原子含义,一旦容器是满的,每个调用的OnDrawItem将访问移动数据,其结果将是一个不连续的显示与缺少的元素。

对于任何具有本机类似索引的容器,这当然是对的,OnDrawItem

我可以使用迭代器的索引在的std ::地图模拟阵列状的索引,如果关键是连续整数,则所有的项目将被勒令和地图可以很容易修剪,但是,似乎是一个低效率的黑客。

我该如何解决这个问题?任何其他想法或容器我没有想到?

回答

1

最好的办法似乎是管理全集装箱状态中懒洋洋地OnDrawBackground。这样的UI本身保证了数据保留在后续调用的OnDrawItem静态,使用双端队列作为容器。

+0

+1分享您自己的发现。 – 2010-05-18 08:02:16