树视图控件中的每个项目都有一个当前状态。例如,可以选择,禁用,扩展等项目。在大多数情况下,树视图控件自动设置项目的状态以反映用户操作,例如选择项目。但是,您还可以使用TVM_SETITEM消息设置项目的状态,并使用TVM_GETITEM消息检索项目的当前状态。有关项目状态的完整列表,请参阅树状物品状态.
项目的当前状态由TV_ITEM结构的州成员指定。树视图控件可能会更改项目的状态以反映用户操作,例如选择项目或将焦点设置为项目。此外,应用程序可能会更改项目的状态以禁用或隐藏该项目,或指定覆盖图像或状态图像。
当您指定或更改项目的状态时,stateMask stateMask成员指定要设置的状态位,并且州成员包含这些位的新值。要设置项目的重叠图像,stateMask必须包含TVIS_OVERLAYMASK值,并且州必须使用INDEXTOOVERLAYMASK宏将包含图像的基于1的索引移出左侧8位。索引可以为零,以指定不覆盖图像。必须通过先前调用ImageList_SetOverlayImage功能将覆盖图像添加到树形视图控件的覆盖图像列表中。该函数指定要添加的图像的基于一个索引;这是与INDEXTOOVERLAYMASK宏一起使用的索引。树视图控件最多可以有四个重叠图像。
要设置项目的状态图像,TV_ITEM TV_ITEM必须包含TVIS_STATEIMAGEMASK值,并且州必须使用INDEXTOSTATEIMAGEMASK宏将包含状态图像的基于1的索引移动到左十二位。索引可以为零,以指定没有状态图像。有关覆盖和状态图像的详细信息,请参阅树形图像列表.