Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Każdy element w kontrolce drzewa (CTreeCtrl) ma bieżący stan. Na przykład element można wybrać, wyłączyć, rozwinąć i tak dalej. W większości przypadków kontrolka drzewa automatycznie ustawia stan elementu w celu odzwierciedlenia akcji użytkownika, takich jak wybór elementu. Można jednak również ustawić stan elementu przy użyciu funkcji składowej SetItemState i pobrać bieżący stan elementu przy użyciu funkcji składowej GetItemState . Aby uzyskać pełną listę stanów elementów, zobacz Tree-View Stałe sterowania w pakiecie Windows SDK.
Bieżący stan elementu jest określony przez parametr nState . Kontrolka drzewa może zmienić stan elementu, aby odzwierciedlić akcję użytkownika, na przykład wybrać element lub ustawić fokus na element. Ponadto aplikacja może zmienić stan elementu, aby wyłączyć lub ukryć element albo określić obraz nakładki lub obraz stanu.
Po określeniu lub zmianie stanu elementu parametr nStateMask określa bity stanu do ustawienia, a parametr nState zawiera nowe wartości dla tych bitów. Na przykład poniższy przykład zmienia bieżący stan elementu nadrzędnego (określonego przez hParentItem) w CTreeCtrl obiekcie (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);
Innym przykładem zmiany stanu byłoby ustawienie obrazu nakładki elementu. Aby to zrealizować, nStateMask musi obejmować wartość TVIS_OVERLAYMASK, a nState musi zawierać jednopodstawowy indeks obrazu nakładki przesunięty w lewo o osiem bitów przy użyciu makra INDEXTOOVERLAYMASK. Indeks może mieć wartość 0, aby wskazać brak obrazu nakładki. Obraz nakładki musi zostać dodany do listy obrazów nakładki drzewa w wyniku wcześniejszego wywołania funkcji CImageList::SetOverlayImage. Funkcja określa jeden indeks obrazu do dodania; jest to indeks używany w makrze INDEXTOOVERLAYMASK. Kontrolka drzewa może mieć maksymalnie cztery obrazy nakładkowe.
Aby ustawić obraz stanu elementu, nStateMask musi zawierać TVIS_STATEIMAGEMASK wartość, a nState musi zawierać indeks jedynkowy obrazu stanu przesunięty w lewo o 12 bitów przy użyciu makra INDEXTOSTATEIMAGEMASK. Indeks może mieć wartość 0, aby nie określić obrazu stanu. Aby uzyskać więcej informacji na temat obrazów nakładek i stanów, zobacz Listy obrazów kontrolki drzewa.