Como trabalhar com índices de imagem de estado
Muitas vezes há confusão sobre como definir e recuperar o índice de imagem de estado em um controle de exibição em árvore. Os exemplos a seguir demonstram o método adequado para definir e recuperar o índice de imagem de estado. Os exemplos pressupõem que há apenas dois índices de imagem de estado no controle de exibição em árvore, desmarcados e verificados. Se o aplicativo contiver mais de dois, essas funções precisarão ser modificadas para lidar com esse caso.
O que você precisa saber
Tecnologias
Pré-requisitos
- C/C++
- Programação da interface do usuário do Windows
Instruções
Definir o estado de verificação de um item de exibição em árvore
O exemplo a seguir demonstra como definir o estado de verificação de um item de exibição em árvore.
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 o estado de verificação de um item de exibição em árvore
O exemplo a seguir demonstra como recuperar o estado de verificação de um item de exibição em árvore.
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);
}
Tópicos relacionados