Condividi tramite


Panoramica degli stati degli elementi del controllo Tree

Ogni elemento in un controllo albero (CTreeCtrl) ha uno stato corrente. Ad esempio, un elemento può essere selezionato, disabilitato, espanso e così via. In genere, il controllo struttura ad albero imposta automaticamente lo stato di un elemento per riflettere le azioni dell'utente, come ad esempio la selezione di un elemento. Tuttavia, è anche possibile impostare lo stato di un elemento usando la funzione membro SetItemState e recuperare lo stato corrente di un elemento usando la funzione membro GetItemState . Per un elenco completo degli stati degli elementi, vedere Costanti di controllo visualizzazione albero in Windows SDK.

Lo stato corrente di un elemento viene specificato dal parametro nState . Un controllo struttura ad albero può modificare lo stato di un elemento per riflettere un'azione dell'utente, come ad esempio la selezione dell'elemento oppure l'impostazione dello stato attivo sull'elemento. Inoltre, un'applicazione può modificare lo stato di un elemento per disabilitare o nascondere l'elemento o per specificare un'immagine sovrapposta o un'immagine di stato.

Quando si specifica o si modifica lo stato di un elemento, il parametro nStateMask specifica i bit di stato da impostare e il parametro nState contiene i nuovi valori per tali bit. Nell'esempio seguente, ad esempio, lo stato corrente di un elemento padre (specificato da hParentItem) in un CTreeCtrl oggetto (m_treeCtrl) viene modificato in TVIS_EXPANDPARTIAL:

TVITEM curItem;
HTREEITEM hParentItem;

hParentItem = m_TreeCtrl.GetSelectedItem();

//modify the parent item to keep the '+' sign
curItem.mask = TVIF_STATE | TVIF_HANDLE;
curItem.hItem = hParentItem;
curItem.state = TVIS_EXPANDPARTIAL;
curItem.stateMask = TVIS_EXPANDPARTIAL;
m_TreeCtrl.SetItem(&curItem);

Un altro esempio di modifica dello stato consiste nell'impostare l'immagine sovrapposta di un elemento. A tale scopo, nStateMask deve includere il TVIS_OVERLAYMASK valore e nState deve includere l'indice in base uno dell'immagine sovrapposta spostato a sinistra otto bit usando la macro INDEXTOOVERLAYMASK . L'indice può essere 0 per specificare che non è presente alcuna immagine sovrapposta. L'immagine di sovrimpressione deve essere stata aggiunta all'elenco di immagini sovrapposte del controllo albero tramite una chiamata precedente alla funzione CImageList::SetOverlayImage . La funzione specifica l'indice in base uno dell'immagine da aggiungere; si tratta dell'indice utilizzato con la macro INDEXTOOVERLAYMASK. Un controllo albero può contenere fino a quattro immagini sovrapposte.

Per impostare l'immagine dello stato di un elemento, nStateMask deve includere il TVIS_STATEIMAGEMASK valore e nState deve includere l'indice in base uno dell'immagine di stato spostato a sinistra a 12 bit usando la macro INDEXTOSTATEIMAGEMASK. L'indice può essere 0 per specificare che non è presente alcuna immagine di stato. Per altre informazioni sulle immagini sovrapposte e sullo stato, vedere Elenchi di immagini di controllo albero.

Vedi anche

Uso di CTreeCtrl
Controlli