Cómo trabajar con índices de imagen de estado
A menudo hay confusión sobre cómo establecer y recuperar el índice de imagen de estado en un control de vista de árbol. En los ejemplos siguientes se muestra el método adecuado para establecer y recuperar el índice de imagen de estado. En los ejemplos se supone que solo hay dos índices de imagen de estado en el control de vista de árbol, desactivado y activado. Si la aplicación contiene más de dos, estas funciones deberán modificarse para controlar ese caso.
Lo que necesita saber
Tecnologías
Requisitos previos
- C/C++
- Programación de la interfaz de usuario de Windows
Instrucciones
Establecer el estado de comprobación de un elemento de Tree-View
En el ejemplo siguiente se muestra cómo establecer el estado de comprobación de un elemento de vista de árbol.
BOOL TreeView_SetCheckState(HWND hwndTreeView, HTREEITEM hItem, BOOL fCheck)
{
TVITEM tvItem;
tvItem.mask = TVIF_HANDLE | TVIF_STATE;
tvItem.hItem = hItem;
tvItem.stateMask = TVIS_STATEIMAGEMASK;
// Image 1 in the tree-view check box image list is the unchecked box.
// Image 2 is the checked box.
tvItem.state = INDEXTOSTATEIMAGEMASK((fCheck ? 2 : 1));
return TreeView_SetItem(hwndTreeView, &tvItem);
}
Recuperar el estado de comprobación de un elemento de Tree-View
En el ejemplo siguiente se muestra cómo recuperar el estado de comprobación de un elemento de vista de árbol.
BOOL TreeView_GetCheckState(HWND hwndTreeView, HTREEITEM hItem)
{
TVITEM tvItem;
// Prepare to receive the desired information.
tvItem.mask = TVIF_HANDLE | TVIF_STATE;
tvItem.hItem = hItem;
tvItem.stateMask = TVIS_STATEIMAGEMASK;
// Request the information.
TreeView_GetItem(hwndTreeView, &tvItem);
// Return zero if it's not checked, or nonzero otherwise.
return ((BOOL)(tvItem.state >> 12) - 1);
}
Temas relacionados