2009-10-22 43 views
1

我有一個數據流,我想將它放在容器中。該容器的大小可以是固定的,也可以在運行時動態約束到一定的大小。後者可能是優選的。wxVListBox與「動態」數據

當容器是滿的,最舊的數據將被刪除。

我想用顯示這個數據wxVListBox因爲我需要完全控制顯示。然而,有一個問題:到的OnDrawItem呼叫不是原子含義,一旦容器是滿的,每個調用的OnDrawItem將訪問移動數據,其結果將是一個不連續的顯示與缺少的元素。

對於任何具有本機類似索引的容器,這當然是對的,OnDrawItem

我可以使用迭代器的索引在的std ::地圖模擬陣列狀的索引,如果關鍵是連續整數,則所有的項目將被勒令和地圖可以很容易修剪,但是,似乎是一個低效率的黑客。

我該如何解決這個問題?任何其他想法或容器我沒有想到?

回答

1

最好的辦法似乎是管理全集裝箱狀態中懶洋洋地OnDrawBackground。這樣的UI本身保證了數據保留在後續調用的OnDrawItem靜態,使用雙端隊列作爲容器。

+0

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