ListView_SetItemState 宏 (commctrl.h)
更改列表视图控件中项的状态。 可以使用此宏或显式发送 LVM_SETITEMSTATE 消息。
语法
void ListView_SetItemState(
HWND hwndLV,
int i,
UINT data,
UINT mask
);
参数
hwndLV
类型:HWND
列表视图控件的句柄。
i
类型:int
列表视图项的索引。 如果此参数为 -1,则状态更改将应用于所有项。
data
类型:UINT
项的新状态位。 掩码 参数指示 数据 参数的有效位。 如果未在 掩码 参数中设置相应的位,宏将忽略 数据 参数中的位。 低序字节包含一组指示项状态的位标志。 此字节可以是以下值的组合:
价值 | 意义 |
---|---|
|
该项标记为剪切和粘贴操作。 |
|
该项突出显示为拖放目标。 |
|
该项具有焦点,因此它被标准焦点矩形包围。 虽然可以选择多个项目,但只有一个项目可以具有焦点。 |
|
已选择该项。 所选项目的外观取决于它是否具有焦点,以及用于选择的系统颜色。 仅当列表视图控件具有焦点或使用 LVS_SHOWSELALWAYS 样式时,项目才会显示为选中。 |
mask
类型:UINT
要设置或清除的 数据 参数的位。 可以使用 ListView_SetItemState 来设置和清除位。 若要设置项的覆盖图像索引,请设置 LVIS_OVERLAYMASK 位。 若要设置项的状态图像索引,请设置 LVIS_STATEIMAGEMASK 位。
返回值
没有
言论
项的状态值包括一组指示项状态的位标志。 状态值还可以包含图像列表索引,这些索引指示项的状态图像和覆盖图像。
掩码 参数指定要修改的状态位,数据 参数指定这些位的新值。 若要在项的内部状态中设置位,请同时在 掩码 和 数据 参数中设置它。 若要清除项的内部状态中的某个位,请在 掩码 参数中设置它,并在 数据 参数中将其清除。 若要在项的内部状态中保持一点不变,请在 掩码 参数中将其清除。
数据 参数中的位 8 到 11 指定控件图像列表中覆盖图像的基于一个索引。 全尺寸图标图像列表和小型图标图像列表都可以具有覆盖图像。 覆盖图像叠加在项的图标图像上。 如果这些位为零,则该项没有覆盖图像。 若要隔离这些位,请使用 LVIS_OVERLAYMASK 掩码。 若要指定覆盖索引,请使用 INDEXTOOVERLAYMASK 宏。
数据 参数中的位 12 到 15 位指定控件状态映像列表中的图像的基于一个索引。 状态图像显示在项的图标旁边,以指示应用程序定义的状态。 如果这些位为零,则该项没有状态图像。 若要隔离这些位,请使用 LVIS_STATEIMAGEMASK 掩码。 若要指定状态图像索引,请使用 INDEXTOSTATEIMAGEMASK 宏。
要求
要求 | 价值 |
---|---|
最低支持的客户端 | Windows Vista [仅限桌面应用] |
支持的最低服务器 | Windows Server 2003 [仅限桌面应用] |
目标平台 | 窗户 |
标头 | commctrl.h |