如何在WTL中的treeview控件中包装项目文本

时间:2013-12-09 07:53:34

标签: c++ treeview atl wtl

我正在维护一个包含树视图的ATL / WTL项目。用于树视图的类是CTreeViewCtrl。现在,客户端要求在树状图文本离开视图时将其包装,尽管我们可以重新调整窗格大小或随时向左滚动以查看内容。当隐藏时,它还会显示完整的字符串,当鼠标指针悬停在树项上时,它将作为工具提示。

我是否可以在树项目或树视图中设置以包装文本内容。

由于

1 个答案:

答案 0 :(得分:0)

有一种方法:在处理来自树视图控件的NM_CUSTOMDRAW消息时,自定义绘制treeview的项目,特别是CDDS_ITEMPOSTPAINT绘图阶段。

在自定义绘图上,您使用带有DT_WORDBREAK标志的::DrawText()绘制多行文本。 为了有足够的空间可供文本使用TVITEMEX结构的iIntegral字段。您必须通过将TVM_SETITEM消息发送到treeview窗口并指向TVITEMEX作为LPARAM的指针来为每个节点指定行数。

您必须重新计算每个树的行数和每次树视图的宽度发生变化时都会显示节点(WM_SIZE)。