Partager via


Modification des étiquettes de contrôles d’arborescence

L’utilisateur peut modifier directement les étiquettes d’éléments dans un contrôle d’arborescence (CTreeCtrl) qui a le style TVS_EDITLABELS . L’utilisateur commence à modifier en cliquant sur l’étiquette de l’élément qui a le focus. Une application commence la modification en utilisant la fonction membre EditLabel. Le contrôleur arborescent envoie une notification lorsqu'une modification commence, qu'elle soit annulée ou terminée. Une fois la modification terminée, vous êtes responsable de la mise à jour de l’étiquette de l’élément, le cas échéant.

Lorsque la modification d'une étiquette commence, un contrôle d'arborescence envoie un message de notification TVN_BEGINLABELEDIT. En traitant cette notification, vous pouvez autoriser la modification de certaines étiquettes et empêcher la modification d’autres. Renvoyer 0 permet de modifier, tandis que renvoyer une valeur différente de zéro l'empêche.

Lorsque la modification d'une étiquette est annulée ou terminée, un contrôle d'arborescence envoie un message de notification TVN_ENDLABELEDIT. Le paramètre lParam est l’adresse d’une structure NMTVDISPINFO . Le membre item est une structure TVITEM qui identifie l'élément et inclut le texte modifié. Vous êtes responsable de la mise à jour de l’étiquette de l’élément, le cas échéant, après la validation de la chaîne modifiée. Le membre pszText de TV_ITEM est égal à 0 si la modification est annulée.

Lors de la modification d'une étiquette, généralement en réponse au message de notification TVN_BEGINLABELEDIT, vous pouvez obtenir un pointeur vers le contrôle d'édition utilisé pour la modification d'étiquettes à l'aide de la fonction membre GetEditControl. Vous pouvez appeler la fonction membre 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 pour intercepter et ignorer des caractères non valides. Notez toutefois que le contrôle d’édition s’affiche uniquement aprèsl’envoi de TVN_BEGINLABELEDIT .

Voir aussi

Utilisation de CTreeCtrl
Contrôles