éléments parents d'arborescence et enfants de contrôle
Tout élément dans un contrôle d'arborescence (CTreeCtrl) peut comporter une liste des sous-éléments, qui sont appelés éléments enfants, qui lui sont associés. Un élément qui a un ou plusieurs éléments enfants est appelé un élément parent. Un élément enfant s'affiche sous l'élément parent et est mis en retrait pour l'identifier comme subordonnés au parent. Un élément qui n'a aucun parent est en haut de la hiérarchie et est appelé un élément racine.
À tout moment, l'état d'une liste d'éléments parents d'élément enfants peut être développé ou réduit. Lorsque l'état est développé, les éléments enfants apparaissent sous l'élément parent. Lorsqu'il est réduit, les éléments enfants ne sont pas affichés. La liste bascule automatiquement entre les états développés ou réduits lorsque l'utilisateur double clique sur l'élément parent ou, si le parent a le style TVS_HASBUTTONS, lorsque l'utilisateur clique sur le bouton associé à l'élément parent. Une application peut augmenter ou réduire les éléments enfants à l'aide de la fonction membre Développer.
Vous ajoutez un élément à un contrôle d'arborescence en appelant la fonction membre InsertItem. Cette fonction retourne un handle du type de HTREEITEM, qui identifie l'élément. En ajoutant un élément, vous devez spécifier le descripteur de l'élément parent du nouvel élément. Si vous spécifiez NULL ou la valeur TVI_ROOT au lieu d'un descripteur parent de l'élément dans la structure TVINSERTSTRUCT ou le paramètre hParent, l'élément est ajouté en tant qu'élément racine.
Un contrôle d'arborescence envoie un message de notification TVN_ITEMEXPANDING lorsque l'élément parent d'une liste d'éléments enfants est sur le point d'être développée ou réduite. La notification vous permet d'empêcher la modification ou la définition de tous les attributs de l'élément parent qui dépendent de l'état de la liste des éléments enfants. Après avoir modifié l'état de la liste, l'arborescence envoie un message de notification TVN_ITEMEXPANDED.
Lorsqu'une liste d'éléments enfants est développée, elle est mise en retrait par rapport à l'élément parent. Vous pouvez définir la quantité de mise en retrait à l'aide de la fonction membre SetIndent ou récupérer la valeur actuelle à l'aide de la fonction membre GetIndent.