TVITEMA 结构 (commctrl.h)
指定或接收树视图项的属性。 此结构与 TV_ITEM 结构相同,但已将其重命名为遵循当前命名约定。 新应用程序应使用此结构。
语法
typedef struct tagTVITEMA {
UINT mask;
HTREEITEM hItem;
UINT state;
UINT stateMask;
LPSTR pszText;
int cchTextMax;
int iImage;
int iSelectedImage;
int cChildren;
LPARAM lParam;
} TVITEMA, *LPTVITEMA;
成员
mask
类型:UINT
指示哪些其他结构成员包含有效数据的标志数组。 当此结构与 TVM_GETITEM 消息一起使用时,掩码 成员指示要检索的项属性。 如果与 TVM_SETITEM 消息一起使用,则 掩码 指示要设置的属性。 此成员可以是以下一个或多个值:
价值 | 意义 |
---|---|
|
cChildren 成员有效。 |
|
树视图控件将保留所提供的信息,并且不会再次请求它。 此标志仅在处理 TVN_GETDISPINFO 通知时有效。 |
|
hItem 成员有效。 |
|
iImage 成员有效。 |
|
lParam 成员有效。 |
|
iSelectedImage 成员有效。 |
|
状态 和 stateMask 成员有效。 |
|
pszText 和 cchTextMax 成员有效。 |
hItem
类型:HTREEITEM
项的句柄。
state
类型:UINT
指示项状态的位标志和图像列表索引集。 设置项的状态时,stateMask 成员指示此成员的有效位。 检索项的状态时,此成员返回 stateMask 成员中指示的位的当前状态。
此成员的位 0 到 7 包含项状态标志。 有关可能的项状态标志的列表,请参阅 Tree-View 控制项状态。
覆盖图像叠加在项的图标图像上。 此成员的位 8 到 11 指定基于一个的覆盖图像索引。 如果这些位为零,则该项没有覆盖图像。 若要隔离这些位,请使用 TVIS_OVERLAYMASK 掩码。 若要在此成员中设置覆盖图像索引,请使用 INDEXTOOVERLAYMASK 宏。 使用 ImageList_SetOverlayImage 函数设置图像列表的覆盖图像。
状态图像显示在项的图标旁边,以指示应用程序定义的状态。 通过发送 TVM_SETIMAGELIST 消息来指定状态映像列表。 若要设置项的状态图像,请在 TVITEM 结构的 stateMask 成员中包含 TVIS_STATEIMAGEMASK 值。 结构 状态 成员的位 12 到 15 位指定要绘制的图像的状态图像列表中的索引。
若要设置状态图像索引,请使用 INDEXTOSTATEIMAGEMASK。 此宏采用索引并相应地设置位 12 到 15。 若要指示该项没有状态图像,请将索引设置为零。 此约定意味着状态映像列表中的图像零不能用作状态映像。 若要隔离 状态 成员的 12 到 15 位,请使用 TVIS_STATEIMAGEMASK 掩码。
stateMask
类型:UINT
状态的位 有效成员。 如果要检索项的状态,请将 stateMask 成员的位设置为指示 状态 成员返回的位。 如果要设置项的状态,请设置 stateMask 成员的位,以指示要设置 状态 成员的位。 若要设置或检索项的覆盖图像索引,请设置 TVIS_OVERLAYMASK 位。 若要设置或检索项的状态图像索引,请设置 TVIS_STATEIMAGEMASK 位。
pszText
类型:LPTSTR
指向包含项文本(如果结构指定项属性)的 null 终止字符串的指针。 如果此成员是LPSTR_TEXTCALLBACK值,则父窗口负责存储名称。 在这种情况下,树视图控件在需要项文本显示、排序或编辑时向父窗口发送一个 TVN_GETDISPINFO 通知代码,并在项文本更改时 TVN_SETDISPINFO 通知代码。 如果结构正在接收项属性,则此成员是接收项文本的缓冲区的地址。 请注意,尽管树视图控件允许将任何长度字符串存储为项文本,但仅显示前 260 个字符。
cchTextMax
类型:int
pszText 成员指向的缓冲区的大小(以字符为单位)。 如果此结构用于设置项属性,则忽略此成员。
iImage
类型:int
当项处于非选定状态时要使用的图标图像的树视图控件图像列表中的索引。 如果此成员是I_IMAGECALLBACK值,则父窗口负责存储索引。 在这种情况下,树视图控件会向父级发送一个 TVN_GETDISPINFO 通知代码,以在需要显示图像时检索索引。
iSelectedImage
类型:int
当项处于选定状态时要使用的图标图像的树视图控件图像列表中的索引。 如果此成员是I_IMAGECALLBACK值,则父窗口负责存储索引。 在这种情况下,树视图控件会向父级发送一个 TVN_GETDISPINFO 通知代码,以在需要显示图像时检索索引。
cChildren
类型:int
指示该项是否具有关联的子项的标志。 此成员可以是以下值之一。
价值 | 意义 |
---|---|
|
该项没有子项。 |
|
该项具有一个或多个子项。 |
|
父窗口会跟踪该项是否具有子项。 在这种情况下,当树视图控件需要显示项时,控件会向父方发送一个 TVN_GETDISPINFO 通知代码,以确定该项是否具有子项。
如果树视图控件具有 TVS_HASBUTTONS 样式,则它使用此成员来确定是否显示指示子项存在的按钮。 您可以使用此成员强制控件显示按钮,即使该项没有插入任何子项。 这样,只有在项可见或展开时,才能通过插入子项来最小化控件的内存使用量,从而显示按钮。 |
|
版本 6.0供内部使用;不建议在应用程序中使用。 树视图控件会自动确定该项是否具有子项。
注意 此标志在 Comctl32.dll的未来版本中可能不受支持。 此外,未在 commctrl.h 中定义此标志。 将以下定义添加到应用程序的源文件以使用标志:
|
lParam
类型:LPARAM
要与项关联的值。
言论
注意
commctrl.h 标头将 TVITEM 定义为一个别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将中性编码别名与不中性编码的代码混合使用可能会导致编译或运行时错误不匹配。 有关详细信息,请参阅函数原型的
要求
要求 | 价值 |
---|---|
最低支持的客户端 | Windows Vista [仅限桌面应用] |
支持的最低服务器 | Windows Server 2003 [仅限桌面应用] |
标头 | commctrl.h |