ListView_SetItemState宏 (commctrl.h)
更改列表视图控件中项的状态。 可以使用此宏或显式发送 LVM_SETITEMSTATE 消息。
语法
void ListView_SetItemState(
hwndLV,
i,
data,
mask
);
参数
hwndLV
类型: HWND
列表视图控件的句柄。
i
类型: int
列表视图项的索引。 如果此参数为 -1,则状态更改将应用于所有项。
data
类型: UINT
项的新状态位。 mask 参数指示状态参数的有效位。 如果未在掩码参数中设置相应的位,宏将忽略状态参数中的位。 低位字节包含一组指示项状态的位标志。 此字节可以是以下值的组合:
值 | 含义 |
---|---|
|
项被标记为剪切操作。 |
|
项被标记为拖放目标。 |
|
该项具有焦点,因此它被一个标准焦点矩形包围。 尽管可以选择多个项,但只有一个项目可以具有焦点。 |
|
该项已选定。 所选项的外观取决于它是否具有焦点以及用于选择的系统颜色。 仅当列表视图控件具有焦点或使用 LVS_SHOWSELALWAYS 样式时,项目才会显示为选中状态。 |
mask
类型: UINT
要设置或清除 的状态 参数的位。 可以使用 ListView_SetItemState 来设置 和 清除位。 若要设置项的覆盖图像索引,请设置 LVIS_OVERLAYMASK 位。 若要设置项的状态图像索引,请设置 LVIS_STATEIMAGEMASK 位。
返回值
无
备注
项的状态值包括一组指示项状态的位标志。 状态值还可以包括指示项的状态图像和覆盖图像的图像列表索引。
mask 参数指定要修改的状态位,state 参数指定这些位的新值。 若要在项的内部状态中设置一个位,请在 掩码 和 状态 参数中设置它。 若要清除项内部状态中的某个位,请在 mask 参数中设置它,并在 state 参数中清除它。 若要在项的内部状态中保持一点不变,请在 mask 参数中将其清除。
状态参数的第 8 位到第 11 位指定控件图像列表中覆盖图像的从 1 开始的索引。 全尺寸图标图像列表和小图标图像列表都可以具有覆盖图像。 覆盖图像叠加在项的图标图像上。 如果这些位为零,则该项没有覆盖图像。 若要隔离这些位,请使用 LVIS_OVERLAYMASK 掩码。 若要指定覆盖索引,请使用 INDEXTOOVERLAYMASK 宏。
状态参数的第 12 位到第 15 位指定控件的状态图像列表中图像的从 1 开始的索引。 状态图像显示在项图标旁边,以指示应用程序定义的状态。 如果这些位为零,则该项没有状态映像。 若要隔离这些位,请使用 LVIS_STATEIMAGEMASK 掩码。 若要指定状态图像索引,请使用 INDEXTOSTATEIMAGEMASK 宏。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows Vista [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2003 [仅限桌面应用] |
目标平台 | Windows |
标头 | commctrl.h |
另请参阅
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈