Freigeben über


Übersicht über Elementzustände des Struktursteuerung-Steuerelements

Jedes Element in einem der Strukturansicht (CTreeCtrl) verfügt über einen aktuellen Zustand. Beispielsweise kann ein Element ausgewählt werden, deaktiviert wurde, erweitert, u. a. In den meisten Fällen legt das Struktursteuerelement automatisch den Zustand eines Elements fest, um Benutzeraktionen, wie Auswahl eines Elements darzustellen. Sie können jedoch den Zustand eines Elements, indem Sie die Memberfunktion SetItemState festlegen, auch verwenden und den aktuellen Zustand eines Elements abrufen, indem Sie die Memberfunktion GetItemState verwenden. Eine vollständige Liste von Elementzuständen, finden Sie im Windows SDK unter Strukturansicht-Steuerelement-Konstanten.

Der aktuelle Zustand eines Elements durch den Parameter nState angegeben. Eine Strukturansicht könnte den Zustand eines Elements, um Benutzeraktionen, z Auswahl des Elements oder Festlegen des Fokus auf das Element an. Außerdem könnte eine Anwendung den Zustand eines Elements, um das Element zu deaktivieren oder auszublenden oder einem Overlaybild oder Zustandsbild anzugeben.

Wenn Sie den Zustand eines Elements angeben oder ändern, gibt der Parameter nStateMask an, die Bits anfordern, um festzulegen, und der nState-Parameter enthält die neuen Werte für diese Bits. Beispielsweise wird im folgenden Beispiel den aktuellen Zustand eines übergeordneten Elements (angegeben durch hParentItem) in einem CTreeCtrl-Objekt (m_treeCtrl) zu 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 für das Ändern des Zustands würde, Overlaybild eines Elements festzulegen sein. Um dies zu erreichen, muss nStateMask den Wert TVIS_OVERLAYMASK enthalten, und nState muss den mit Eins beginnenden Index des Overlaybilds einschließen, das verschoben wird ließ acht Bits mit dem Makro INDEXTOOVERLAYMASK verwendet. Der Index darf 0, um keinen Overlaybilds anzugeben. Das Overlaybild muss der Liste des Strukturansicht-Steuerelements von Overlaybildern bei einem vorherigen Aufruf der CImageList::SetOverlayImage-Funktion hinzugefügt worden sein. Die Funktion gibt den mit Eins beginnenden Index des Bildes, der hinzugefügt; Dies ist der Index, der mit dem Makro INDEXTOOVERLAYMASK verwendet wird. Eine Strukturansicht kann bis vier bedeckte Bilder enthalten.

Um Zustandsbild eines Elements festzulegen, muss nStateMask den Wert TVIS_STATEIMAGEMASK enthalten, und nState muss den mit Eins beginnenden Index des Zustands einschließen, der das Bild, das verschoben wurde 12 Bits können mit dem INDEXTOSTATEIMAGEMASK-Makro. Der Index darf 0, um keinen Zustandsbilds anzugeben. Weitere Informationen über Overlay- und Zustandsbilder, finden Sie unter Strukturansicht-Steuerelement-Bildlisten.

Siehe auch

Referenz

Verwenden von CTreeCtrl

Konzepte

Steuerelemente (MFC)