我想知道为什么
TTreeView
在第 259 个字符处切断我的文本。
我已经找到了一些论坛和网站,他们说这是 Windows 的限制。
它也适用于 C++ Builder 2010 吗?
如果是的话,为什么可以在
TreeNode
属性中存储更多字符?
我想知道为什么
在第 259 个字符处切断我的文本。TTreeView
因为这就是标准 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 个字符。