避免在ListView中截断标签

时间:2012-12-27 16:54:07

标签: c++ winapi 3dsmax

人们! 我使用listview(图标模式)来显示由图像和标签组成的项目。 正如您在镜头中看到的那样,行高在y上是可变的,具体取决于标签长度。问题是我想要绘制完整的标签,但它们会自动缩小为两行: All strings which are too long have been truncated

关于它的奇怪之处在于,一旦你选择了一个项目,就会显示整个标签: The selected item is displayed without truncation 取消选择项目时也是这种情况,但是当选择另一个项目时,只会完全显示该项目。 有没有办法(不手动绘制文本)以避免在我的情况下截断? 如果需要一些代码来回答这个问题,请不要犹豫。

问候, 萨塔拉

1 个答案:

答案 0 :(得分:1)

我猜这是一个设计选择:让事情看起来不那么混乱。例如。想象你的桌面上显示完全显示的所有标签...在我的情况下看起来会很混乱。

但是,您可以通过自己绘制标签来解决此问题。查看custom draw这是列表控件提供的服务。事情是它通常是全有或全无的方法,所以这可能需要你自己绘制所有东西:边框,图像,标签等。另一个选择是得到hacky:子窗口并在Windows之后再次绘制标签回应几条消息(不幸的是,Windows不会将绘画限制为WM_PAINT,这是一种过去遗留下来的优化......)