在将项添加到树控件(CTreeCtrl)时,通常指定项标签的文本。 成员 InsertItem
函数可以传递定义项属性的 TVITEM 结构,包括包含标签文本的字符串。
InsertItem
有多个重载,可以使用各种参数组合调用。
树控件分配用于存储每个项的内存;项标签的文本占用此内存的很大一部分。 如果应用程序在树控件中维护字符串的副本,则可以通过在 pszText 成员TV_ITEM
或 lpszItem 参数中指定LPSTR_TEXTCALLBACK值来减少控件的内存要求,而不是将实际字符串传递给树控件。 使用 LPSTR_TEXTCALLBACK ,每当需要重绘项时,树控件都会从应用程序中检索项标签的文本。 为了检索文本,树控件发送 TVN_GETDISPINFO 通知消息,其中包括 NMTVDISPINFO 结构的地址。 必须通过设置包含结构的相应成员来响应。
树控件使用从创建树控件的进程堆中分配的内存。 树控件中的最大项数取决于堆中可用的内存量。 每个项需要 64 个字节。