Come usare gli indici di immagine di stato
Spesso si verificano confusione su come impostare e recuperare l'indice dell'immagine di stato in un controllo visualizzazione albero. Gli esempi seguenti illustrano il metodo appropriato per impostare e recuperare l'indice dell'immagine di stato. Gli esempi presuppongono che nel controllo visualizzazione albero siano presenti solo due indici di immagine di stato, deselezionati e controllati. Se l'applicazione contiene più di due, queste funzioni dovranno essere modificate per gestire tale caso.
Informazioni importanti
Tecnologie
Prerequisiti
- C/C++
- Programmazione dell'interfaccia utente di Windows
Istruzioni
Impostare lo stato di controllo di un elemento della visualizzazione albero
Nell'esempio seguente viene illustrato come impostare lo stato di controllo di un elemento della visualizzazione albero.
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);
}
Recuperare lo stato di controllo di un elemento della visualizzazione ad albero
Nell'esempio seguente viene illustrato come recuperare lo stato di controllo di un elemento della visualizzazione albero.
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);
}
Argomenti correlati