Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Jedes Element in einer Baumsteuerung (CTreeCtrl) hat einen aktuellen Zustand. Beispielsweise kann ein Element ausgewählt, deaktiviert, erweitert usw. werden. In den meisten Fällen legt das Baumsteuerungselement den Zustand eines Elements automatisch fest, um Benutzeraktionen, wie die Auswahl eines Elements, zu berücksichtigen. Sie können den Status eines Elements jedoch auch mithilfe der SetItemState-Memberfunktion festlegen und den aktuellen Status eines Elements mithilfe der GetItemState-Memberfunktion abrufen. Eine vollständige Liste der Elementzustände finden Sie unter Tree-View Steuerelementkonstanten im Windows SDK.
Der aktuelle Status eines Elements wird durch den nState-Parameter angegeben. Ein Baum-Steuerelement kann den Status eines Elements ändern, um eine Aktion des Benutzers zu reflektieren, wie z. B. die Auswahl des Elements oder das Festlegen des Fokus auf das Element. Darüber hinaus kann eine Anwendung den Status eines Elements ändern, um das Element zu deaktivieren oder auszublenden oder ein Überlagerungsbild oder Zustandsbild anzugeben.
Wenn Sie den Status eines Elements angeben oder ändern, gibt der Parameter "nStateMask " an, welche Statusbits festgelegt werden sollen, und der nState-Parameter enthält die neuen Werte für diese Bits. Das folgende Beispiel ändert beispielsweise den aktuellen Zustand eines übergeordneten Elements (angegeben durch hParentItem) in einem CTreeCtrl Objekt (m_treeCtrl) 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);
Ein weiteres Beispiel zum Ändern des Zustands wäre das Festlegen des Überlagerungsbilds eines Elements. Dazu muss nStateMask den Wert TVIS_OVERLAYMASK enthalten und nState den einbasigen Index des Overlay Image, der mit dem Makro INDEXTOOVERLAYMASK um acht Bit nach links verschoben wurde. Der Index kann 0 sein, um kein Überlagerungsbild anzugeben. Das Überlagerungsbild muss der Liste der Überlagerungsbilder des Baumsteuerungselements durch einen vorherigen Aufruf der Funktion CImageList::SetOverlayImage hinzugefügt worden sein. Die Funktion gibt den 1-basierten Index des hinzuzufügenden Bilds an; Dies ist der Index, der mit dem INDEXTOOVERLAYMASK-Makro verwendet wird. Ein Baum-Steuerelement kann bis zu vier Overlay Images enthalten.
Um das Statusbild eines Elements festzulegen, muss nStateMask den TVIS_STATEIMAGEMASK Wert enthalten, und nState muss den 1-basierten Index des Zustandsbilds enthalten, das mit dem INDEXTOSTATEIMAGEMASK-Makro um 12 Bit verschoben wurde. Der Index kann 0 sein, um kein Zustandsbild anzugeben. Weitere Informationen zu Überlagerungsbildern und Zustandsbildern finden Sie unter Baumkontrollbildlisten.