我正在维护一个包含 TreeView 的 ATL/WTL 项目。用于 TreeView 的类是 CTreeViewCtrl。现在,客户要求在树项文本离开 View 时换行,但我们可以随时调整 Pane 大小或左右滚动以查看内容。当鼠标指针悬停在树项目上时,它还会在隐藏时显示完整的字符串作为工具提示。
有什么方法可以在树项目或 TreeView 中设置来包装文本内容。
谢谢
最佳答案
有一种方法:在处理来自 TreeView 控件的 NM_CUSTOMDRAW 消息时,自定义绘制 TreeView 的项目,特别是 CDDS_ITEMPOSTPAINT 绘图阶段。
在自定义绘图上,您使用 ::DrawText() 绘制多行文本带有 DT_WORDBREAK 标志。 为了有足够的空间供文字使用TVITEMEX结构的 iIntegral 字段。您必须通过将 TVM_SETITEM 消息发送到 TreeView 窗口来指定每个节点的行数,并将指向 TVITEMEX 的指针作为 LPARAM。
每次 TreeView 的时候,您都必须重新计算每个树节点的行数宽度变化 ( WM_SIZE )。
关于c++ - 如何在 WTL 的 treeview 控件中包装项目文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20465667/