我有一個SysListView32
應該有可能主持數百萬行,並且三列文本A,B,C每個< 256個字符。假設列B有許多重複(例如:列A是文件名,列B是路徑,每行是文件系統的文件),並且只有100k個不同的值(而不是幾百萬)。1百萬行ListView
是否可以避免在ListView
GUI元素的列B的內容的RAM中重複?
我們能填充ListView
僅指針到數組中的元素(從塔B的不同值的100K的元件陣列剖切),而不是複製數據?
如何修改它使其工作?
LV_ITEM item;
item.mask = LVIF_TEXT;
item.pszText = "Hello";
...
ListView_SetItem(hList, &item);
[虛擬列表視圖樣式](https://msdn.microsoft.com/en-us/library/windows/desktop/bb774735.aspx #Virtual_ListView_Style)和[如何使用虛擬列表視圖控件](https://msdn.microsoft.com/en-us/library/windows/desktop/hh270411.aspx)。 – IInspectable
@IInspectable確實看起來很有趣,我讀了幾次,但我可能需要更多的讀數才能完全掌握它。也許你認爲我們可以找到一個完整的MSVC++玩具項目來證明這一點,一個真正的具體ListView填充行? – Basj
真的沒有多少。您可以使用'LVS_OWNERDATA'風格創建列表視圖,在'LVITEM.lParam'中存儲一個指向原始數據的指針,並處理'LVN_GETDISPINFO'消息。 – IInspectable