L'élément de contrôle tree indique 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é, désactivé, développé, et ainsi de suite.Pour la plupart, le contrôle d'arborescence définit automatiquement l'état d'un élément pour refléter des 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 de SetItemState et récupérer l'état actuel d'un élément à l'aide de la fonction membre de GetItemState .Pour une liste complète des états d'élément, 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 pour indiquer une action utilisateur, telle que la sélection de l'élément ou définir le focus à 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 superposition ou pour déclarer l'image.
Lorsque vous spécifiez ou modifiez l'état d'un élément, le paramètre d' nStateMask spécifie qui déclare des bits pour 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 modifier l'état est de définir l'image de superposition d'un élément.Pour ce faire, nStateMask doit inclure la valeur d' TVIS_OVERLAYMASK , et nState doit inclure l'index qui commencent à 1 de l'image de superposition déplacée vers la gauche huit bits à l'aide de la macro de INDEXTOOVERLAYMASK .L'index peut être 0 pour ne pas spécifier d'image de superposition.l'image de superposition doit avoir été ajoutée à la liste de contrôle d'arborescence d'images de superposition par un appel précédent à la fonction de CImageList::SetOverlayImage .La fonction indique l'index qui commencent à 1 de l'image à ajouter ; c'est l'index utilisé avec la macro d' INDEXTOOVERLAYMASK .Un contrôle d'arborescence peut contenir jusqu'à quatre images de superposition.
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 qui commencent à 1 de l'image d'état déplacée vers la gauche 12 bits à l'aide de la macro de INDEXTOSTATEIMAGEMASK .L'index peut être 0 pour ne pas spécifier d'image d'état.Pour plus d'informations sur les images de chevauchement et d'état, consultez listes d'images de contrôle d'arborescence.