Partager via


L'élément de contrôle tree déclare la présentation

Chaque élément dans un contrôle d'arborescence (CTreeCtrl) a un état actuel. Par exemple, un élément peut être sélectionné, desactivé, développé, et ainsi de suite. Dans la plupart des cas, l'arborescence définit automatiquement l'état d'un élément de sorte à refléter toutes les actions de l'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 d' SetItemState et récupérer l'état actuel d'un élément à l'aide de la fonction membre d' GetItemState. Pour obtenir une liste complète des états des éléments, consultez Constantes de contrôle arborescence dans Kit de développement logiciel Windows.

L'état actuel d'un élément est spécifié par le paramètre d' nState. Un contrôle d'arborescence peut modifier l'état d'un élément de sorte à refléter une action d'utilisateur, telle que sélectionner l'élément ou définir 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 pour spécifier une image de recouvrement ou d'état.

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

Pour définir l'image de l'état d'un élément, nStateMask doit inclure la valeur d' TVIS_STATEIMAGEMASK, et nState doit inclure l'index de base un de l'image d'état déplacée à gauche de 12 bits en utilisant la macro d' INDEXTOSTATEIMAGEMASK. L'index peut être 0 pour spécifier qu'il n'y a aucune image d'état. Pour plus d'informations sur les images de recouvrement et d'état, consultez Listes d'images de contrôle tree.

Voir aussi

Référence

À l'aide de CTreeCtrl

Concepts

contrôles (MFC)