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