Modification d'étiquettes de contrôle d'arborescence
L'utilisateur peut modifier directement les noms des éléments dans un contrôle d'arborescence (CTreeCtrl) qui utilise un style de TVS_EDITLABELS .l'utilisateur commence la modification en cliquant sur le nom de l'élément qui a le focus.Une application démarre des modifications à l'aide de la fonction membre d' EditLabel .Le contrôle d'arborescence envoie la notification lorsque la modification commence et lorsqu'il est annulé ou terminé.Lorsque la modification est terminé, vous êtes chargé de mettre à jour le nom de l'élément, le cas échéant.
Lorsque le changement de nom commence, un contrôle d'arborescence envoie un message de notification de TVN_BEGINLABELEDIT .Le traitement de cette notification, vous pouvez autoriser la modification de certains noms et empêcher la modification d ' autres.Retourner 0 permet la modification, puis retourner une valeur différente de zéro l'empêché.
Lorsque le changement de nom est annulée ou terminée, un contrôle d'arborescence envoie un message de notification de TVN_ENDLABELEDIT .Le paramètre d' lParam est l'adresse d'une structure de NMTVDISPINFO .Le membre d' item est une structure de TVITEM qui identifie l'élément et inclut le texte modifié.Vous êtes chargé de mettre à jour le nom de l'élément, le cas échéant, peut-être après avoir validé la chaîne modifiée.Le membre de pszText d' TV_ITEM a 0 ans si la modification est annulé.
Lors de la modification de nom, généralement en réponse à le message de notification de TVN_BEGINLABELEDIT , vous pouvez obtenir un pointeur vers le contrôle d'édition utilisée pour la modification de nom à l'aide de la fonction membre de GetEditControl .Vous pouvez appeler la fonction membre de SetLimitText du contrôle d'édition pour limiter la quantité de texte qu'un utilisateur peut entrer ou sous-classer le contrôle d'édition à intercepter et ignorer des caractères non valides.Notez, cependant, que le contrôle d'édition est affiché uniquement après queTVN_BEGINLABELEDIT est envoyé.