2012-12-27 115 views
2

夥計! 我使用列表視圖(圖標模式)來顯示由圖像和標籤組成的項目。 正如你可以看到在鏡頭中行高是可變的y取決於標籤的長度。問題是,我想繪製完整的標籤,但會被自動收縮成兩行: All strings which are too long have been truncated避免在ListView中截斷標籤

它奇怪的是,一旦你選擇一個項目整個標籤將顯示: The selected item is displayed without truncation 取消選擇項目時也是如此,但是當選擇另一個項目時,只有該項目會完全顯示。 有沒有一種方法(無需手動繪製文本)來避免在我的情況下截斷? 如果需要一些代碼來回答這個問題,請不要猶豫,問。

問候, 薩塔拉

+0

您嘗試使用'LVS_EX_COLUMNOVERFLOW'玩過嗎? –

+0

不幸的是,這個標誌在我的環境中不可用,但我可以使用LVS_EX_HIDELABELS隱藏標籤並按照建議的方式手動繪製它們!謝謝! – Satara

回答

1

我猜這是一個設計選擇:讓事情看起來更簡潔。例如。用完全顯示的所有標籤描繪你的桌面......在我的情況下看起來很亂。

但是,您可以通過自己繪製標籤來解決此問題。查看custom draw這是列表控件提供的服務。問題在於它通常是一種全有或全無的方法,因此這可能需要您自己繪製所有內容:邊界,圖像,標籤等。另一種選擇是獲取hacky:在Windows之後再次窗口並繪製標籤回覆幾條消息(不幸的是,Windows並沒有將繪畫限制爲WM_PAINT,這是一種從舊時代遺留下來的優化...)

+0

非常感謝您的回覆!什麼讓我希望更簡單的解決方案是,Windows資源管理器在縮略圖中顯示整個標籤。 – Satara