2012-12-27 77 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