2009-12-04 78 views
0

我似乎並沒有得到任何錯誤,如果我稱S etItemText(item,subItem,string),對分項的值大於設置的列數。但是當我調用GetItemText時,我似乎沒有收到數據。只是想確認是正確的,我不能使用SetItemText作爲添加一些自定義的數據更便捷的方式 - SetItemData要求你記得釋放內存等等。MFC CListCtrl - 爲不存在的列設置子項目文本?

回答

1

我想你會訴諸SetItemData方法,雖然你似乎害怕內存分配/釋放。
你爲什麼不重寫CListCtrl類用自己的種類(例如CMyListCtrl),其中你實現如一個SetItemCustomData方法,併爲您處理所有內存問題,所以你不必在你的實際用戶界面代碼中處理?

+0

您還需要重寫,當一個項目被刪除,當然使用的方法。這顯然是'正確'的答案,但在這種情況下,我實際上做了什麼(因爲它使代碼更加整潔)是添加一個零寬度的列......我沒有阻止列被調整大小,因爲它可能有助於查看數據,但我可以完成。 –

0

你檢查,你可以得到文字回來?

即使它的作品,我會絕對避免這種解決方案:你無法預測它是否仍然會在Windows的下一個版本。或者即使它在所有以前的工作。

使用SetItemData()......不要忘記釋放內存!