Sdílet prostřednictvím


Přehled stavů položek ovládacího prvku strom

Každá položka v ovládacím prvku stromu (CTreeCtrl) má aktuální stav. Můžete například vybrat položku, zakázat, rozbalit atd. Ve většině případů ovládací prvek strom automaticky nastaví stav položky tak, aby odrážel akce uživatele, například výběr položky. Můžete ale také nastavit stav položky pomocí členské funkce SetItemState a načíst aktuální stav položky pomocí GetItemState členské funkce. Úplný seznam stavů položek najdete v tématu Konstanty ovládacího prvku stromové zobrazení v sadě Windows SDK.

Aktuální stav položky je určen parametrem nState . Ovládací prvek stromu může změnit stav položky tak, aby odrážel akci uživatele, například výběr položky nebo nastavení fokusu na položku. Kromě toho může aplikace změnit stav položky tak, aby tuto položku zakázala nebo skrývala nebo aby určila překryvný obrázek nebo obrázek stavu.

Když zadáte nebo změníte stav položky, parametr nStateMask určuje, které bity stavu se mají nastavit, a nState parametr obsahuje nové hodnoty pro tyto bity. Například následující příklad změní aktuální stav nadřazené položky (určené hParentItem) v objektu CTreeCtrl (m_treeCtrl) na 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);

Dalším příkladem změny stavu je nastavení překryvného obrázku položky. K tomu musí nStateMask obsahovat TVIS_OVERLAYMASK hodnotu a nState musí obsahovat index s jedním indexem překryvného obrázku posunutého doleva osm bitů pomocí makra INDEXTOOVERLAYMASK. Index může mít hodnotu 0, aby nebyl zadán žádný překryvný obrázek. Překryvný obrázek musí být přidán do seznamu překryvných obrázků ovládacího prvku stromu předchozím voláním funkce CImageList::SetOverlayImage . Funkce určuje index jednoho obrázku, který se má přidat; toto je index použitý s makrem INDEXTOOVERLAYMASK. Ovládací prvek stromu může mít až čtyři překryvné obrázky.

Pokud chcete nastavit image stavu položky, musí nStateMask obsahovat hodnotu a nState musí obsahovat TVIS_STATEIMAGEMASK index stavu posunutý doleva o 12 bitů pomocí makra INDEXTOSTATEIMAGEMASK. Index může mít hodnotu 0, aby nebyl zadán žádný stavový obrázek. Další informace o překryvných a stavových obrázcích najdete v tématu Seznamy obrázků ovládacího prvku strom.

Viz také

Používání atributu CTreeCtrl
Ovládací prvky