是否可以定义将在Win32应用程序的“树形 View ”控件的节点中显示的文本长度?

例如,我们有字符串“text | 2”。然后,我想将指向此字符串的指针存储在节点中,但仅显示“text”而不显示“| 2”。

我以为cchTextMax字段对此负责,但是下一个代码将不起作用:

TV_INSERTSTRUCT tvinsert;
tvinsert.item.mask = TVIF_TEXT;
tvinsert.item.pszText = "text|2";
tvinsert.item.cchTextMax= 4;
SendDlgItemMessage(hDlg,IDD_TREE,TVM_INSERTITEM,0,(LPARAM)&tvinsert);

节点strill显示全文“text | 2”。

一种解决方案是将所需的文本复制到新的指针,然后使用它。但是这个解决方案令我不满意,因为我也需要将字符串的最后一部分与节点一起存储。

最佳答案

这是来自TVITEM的MSDN文档:



因此,此成员仅在检索的items属性时有效,而在将设置为时将其忽略(例如在向树 View 控件中添加新项目时)。将必需的文本复制到新的指针,然后使用的另一种解决方案是一个选项。

09-25 17:49