Opérations de glisser-déplacer de contrôle d'arborescence
Un contrôle d'arborescence (CTreeCtrl) envoie une notification lorsque l'utilisateur commence à faire glisser un élément.Le contrôle envoie un message de notification de TVN_BEGINDRAG lorsque l'utilisateur commence faisant glisser un élément avec le bouton gauche de la souris et un message de notification de TVN_BEGINRDRAG lorsque l'utilisateur commence faire glisser avec le bouton droit.Vous pouvez empêcher un contrôle d'arborescence d'envoyer ces notifications en donnant au contrôle d'arborescence le style de TVS_DISABLEDRAGDROP .
Vous obtenez une image à afficher lors d'une opération glisser en appelant la fonction membre de CreateDragImage .Le contrôle d'arborescence crée une image bitmap de glissement en fonction de le nom de l'élément déplacé.Le contrôle d'arborescence crée une liste d'images, ajoute la bitmap à lui, et retourne un pointeur vers l'objet de CImageList .
Vous devez fournir du code qui fait glisser effectivement l'élément.Cela implique généralement avec les fonctions de glissement des fonctions et le traitement de liste d'images les messages de WM_MOUSEMOVE et de WM_LBUTTONUP (ou WM_RBUTTONUP) envoyés une fois l'opération glisser démarrage.Pour plus d'informations sur les fonctions de liste d'images, consultez CImageList dans MFC Reference et le listes d'images dans Kit de développement logiciel Windows.Pour plus d'informations sur le déplacement d'un élément de contrôle d'arborescence, consultez faire glisser l'élément d'arborescence, également dans Kit de développement logiciel Windows.
Si les éléments dans un contrôle d'arborescence doivent être des cibles d'une opération de glisser-déplacer, vous devez savoir quand le curseur de la souris est sur un élément cible.Vous pouvez découvrir en appelant la fonction membre de HitTest .Vous spécifiez un point et l'entier, ou l'adresse d'une structure de TVHITTESTINFO qui contient les coordonnées actuel du curseur de la souris.Lorsque la fonction retourne la valeur, l'entier ou la structure contient une balise qui indique l'emplacement du curseur de la souris par rapport à le contrôle d'arborescence.Si le curseur se trouve sur un élément dans le contrôle d'arborescence, la structure contient le handle de l'élément également.
Vous pouvez indiquer qu'un élément est la cible d'une opération de glisser-déplacer en appelant la fonction membre de SetItem pour définir l'état à la valeur d' TVIS_DROPHILITED .Un élément qui possède cet état est dessiné dans le style utilisé pour indiquer une cible de glisser-déplacer.