TTreeView 可以连续显示超过 259 个字符吗?

问题描述 投票:0回答:1

我想知道为什么

TTreeView
在第 259 个字符处切断我的文本。 我已经找到了一些论坛和网站,他们说这是 Windows 的限制。 它也适用于 C++ Builder 2010 吗?

如果是的话,为什么可以在

TreeNode
属性中存储更多字符?

c++builder
1个回答
0
投票

我想知道为什么

TTreeView
在第 259 个字符处切断我的文本。

因为这就是标准 Win32 TreeView 控件的工作原理。这是 MSDN 上记录的行为:

TVITEMA结构(commctrl.h)
TVITEMW结构(commctrl.h)

请注意,虽然树视图控件允许将任意长度的字符串存储为项目文本,但仅显示前 260 个字符


我已经找到了一些论坛和网站,他们说这是 Windows 的限制。它也适用于 C++ Builder 2010 吗?

是的,因为

TTreeView
组件只是标准 Win32 TreeView 控件的包装。


如果是的话,为什么可以在 TreeNode 属性中存储更多字符?

因为

TTreeNode::Text
属性只是一个普通的
System::String
,所以只要内存允许就可以。但是,当
TTreeNode::Text
应用于底层 Win32 TreeView(响应
TVN_GETDISPINFO
通知)时,
Text
会被复制到操作系统决定接收文本的任何缓冲区中。而这恰好只允许 260 个字符。

© www.soinside.com 2019 - 2024. All rights reserved.