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 à modifier à l’aide de la fonction membre EditLabel . Le contrôle d’arborescence envoie la notification lorsque la modification commence et lorsqu’elle est 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’é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. Le retour de 0 permet de modifier et de retourner un non-zéro l’empêche.
Lorsque la modification d’é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 de l’élément 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
0 si la modification est annulée.
Lors de la modification d’é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’étiquette à 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 dis carte caractères non valides. Notez toutefois que le contrôle d’édition s’affiche uniquement après l’envoi de TVN_BEGINLABELEDIT.