Partager via


Vue d'ensemble des états d'élément de contrôle d'arborescence

Chaque élément d’un contrôle d’arborescence (CTreeCtrl) a un état actuel. Par exemple, un élément peut être sélectionné, désactivé, développé, et ainsi de suite. Dans la plupart des cas, le contrôle d’arborescence définit automatiquement l’état d’un élément pour refléter les actions utilisateur, telles que la sélection d’un élément. Toutefois, vous pouvez également définir l’état d’un élément à l’aide de la fonction membre SetItemState et récupérer l’état actuel d’un élément à l’aide de la fonction membre GetItemState . Pour obtenir la liste complète des états d’élément, consultez Tree-View constantes de contrôle dans le Kit de développement logiciel (SDK) Windows.

L’état actuel d’un élément est spécifié par le paramètre nState . Un contrôle d’arborescence peut modifier l’état d’un élément pour refléter une action utilisateur, par exemple en sélectionnant l’élément ou en définissant le focus sur l’élément. En outre, une application peut modifier l’état d’un élément pour désactiver ou masquer l’élément ou spécifier une image de superposition ou d’état.

Lorsque vous spécifiez ou modifiez l’état d’un élément, le paramètre nStateMask spécifie les bits d’état à définir et le paramètre nState contient les nouvelles valeurs de ces bits. Par exemple, l’exemple suivant modifie l’état actuel d’un élément parent (spécifié par hParentItem) dans un CTreeCtrl objet (m_treeCtrl) en 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 autre exemple de modification de l’état serait de définir l’image de superposition d’un élément. Pour ce faire, nStateMask doit inclure la TVIS_OVERLAYMASK valeur, et nState doit inclure l'index à base un de l'image de superposition décalée de huit bits vers la gauche à l'aide de la macro INDEXTOOVERLAYMASK. L’index peut être 0 pour spécifier aucune image de superposition. L’image de superposition doit avoir été ajoutée à la liste des images de superposition du contrôle d’arborescence par un appel précédent à la fonction CImageList ::SetOverlayImage . La fonction spécifie l’index à base unique de l’image à ajouter ; il s’agit de l’index utilisé avec la macro INDEXTOOVERLAYMASK. Un contrôle d’arborescence peut contenir jusqu’à quatre images de superposition.

Pour définir l’image d’état d’un élément, nStateMask doit inclure la TVIS_STATEIMAGEMASK valeur et nState doit inclure l’index de base unique de l’image d’état décalée à gauche 12 bits à l’aide de la macro INDEXTOSTATEIMAGEMASK . L’index peut être 0 pour spécifier aucune image d’état. Pour plus d’informations sur les images de superposition d’état, consultez Listes d'images de contrôle d'arborescence.

Voir aussi

Utilisation de CTreeCtrl
Contrôles