commctrl.h

Macro ListView_SetItemState

Modifica el estado de un ítem en un control list-view. Se puede usar esta macro o enviar el mensaje LVM_SETITEMSTATE explícitamente.

Definición

BOOL ListView_SetItemState(
    HWND hwndLV,
    int i,
    UINT state,
    UINT mask
);

Descripción

hwndLV
Un manipulador del control list-view.
i
Índice del ítem del list-view. Si este parámetro es -1, entonces el cambio de estado se aplicará a todos los ítems.
state
Los nuevos bits de estado para el ítem. El parámetro mask indica los bits válidos del parámetro state. La macro ignora los bits en el parámetro state si los bits correspondientes no están asignados en el parámetro mask. EL byte de menor peso contiene un conjunto de banderas de bits que indican el estado del ítem. Este byte puede ser una combinación de los siguientes valores:

ValorSignificado
LVIS_CUTEl ítem está marcado para una operación de cortar y pegar.
LVIS_DROPHILITEDEl ítem está resaltado como un objetivo de una operación de drag-and-drop.
LVIS_FOCUSEDEl ítem tiene el foco, de modo que está rodeado por el rectángulo estándar de foco. Aunque más de un ítem puede estar seleccionado, solo uno puede tener el foco.
LVIS_SELECTEDEl ítem está seleccionado. La apariencia de un ítem seleccionado depende de si tiene el foco y también de los colores del sistema usados para la selección. Los ítems solo pueden mostrarse como seleccionados si el control list-view tiene el foco o si usa el estilo LVS_SHOWSELALWAYS.
mask
Bits del parámetro state que se quieren activar o eliminar. También se puede usar ListView_SetItemState para asignar o eliminar bits. Para asignar un índice de imágen superpuesta, activar los bits LVIS_OVERLAYMASK. Para asignar un índice de imagen de estado, asignar los bits LVIS_STATEIMAGEMASK.

Valor de retorno

Devuelve TRUE si tiene éxito, o FALSE en caso contrario.

Observaciones

Un valor de estado de ítem incluye un conjunto de banderas de bits que indican el estado del ítem. El valor de estado puede incluir también índices de listas de imágenes que indiquen la imagen de estado del ítem y la imagen superpuesta.

El parámetro mask especifica que bits de estado se quieren modificar, y el parámetro state especifica los nuevos valores para esos bits. Para asignar un bit en el estado interno de un ítem, hay que activarlo en ambos parámetros mask y state. Para eliminar un bit en el estado interno del ítem, se debe asignar en el parámetro mask y eliminar en el parámetro state. Para dejar si cambios un bit en el estado interno del ítem, eliminarlo en el parámetro mask.

Los bits 8 a 11 del parámetro state especifican el índice basado en uno de una imagen superpuesta en la lista de imágenes del control. Tanto la lista de imágenes de iconos grandes como la de iconos pequeños pueden tener imágenes superpuestas. La imagen superpuesta se muestra sobre la imagen del icono del ítem. Si esos bits son cero, el ítem no tiene imagen superpuesta. Para aislar estos bits se usa la máscara LVIS_OVERLAYMASK. Para especificar un índice de imagen superpuesta, se usa la macro INDEXTOOVERLAYMASK.

Los bits 12 a 15 del parámetro state especifican el índice basado en uno de una imagen de estado en la lista de imágenes del control. La imagen de estado se muestra al lado del icono de ítem para indicar un estado definido por la aplicación. Si esos bits son cero, el ítem no tiene imagen de estado. Para aislar estos bits se usa la máscara LVIS_STATEIMAGEMASK . Para especificar un índice de imagen superpuesta, se usa la macro INDEXTOSTATEIMAGEMASK .