List View Drag'n'drop [Résolu]

Signaler
Messages postés
4
Date d'inscription
samedi 21 avril 2007
Statut
Membre
Dernière intervention
25 octobre 2008
-
Messages postés
4
Date d'inscription
samedi 21 avril 2007
Statut
Membre
Dernière intervention
25 octobre 2008
-
Bonjour,

J'ai une listview qui est similaire à une listbox mais contenant plusieurs colonnes,
je me demandais comment je pourrai procéder pour que la listview
soit "triable" par l'utilisateur c-à-d qu'il puisse prendre le premier élément par exemple
et le déplacer en milieu de liste.

6 réponses

Messages postés
1910
Date d'inscription
vendredi 18 juin 2004
Statut
Modérateur
Dernière intervention
14 novembre 2014
13
Salut,
Une solution consiterait à utiliser la notification LVN_BEGINDRAG engendrée par la listview quand on tente de glisser un item  avec la souris. Pendant le traitement de cette notification, on crée une DragImage en envoyant LVM_CREATEDRAGIMAGE à la listview puis on utilise les fonctions ImageList_BeginDrag() et ImageList_DragEnter(). A la fin de ce traitement on utilise SetCapture() pour capturer la souris. Un flag sera utilisé pour indiquer qu'il y'a une opération de drag en cours.
Pendant le traitement du message WM_MOUSEMOVE on utilise la fonction ImageList_DragMove(). On finit par traiter le message WM_LBUTTONUP en utilisant ImageList_DragLeave(), ImageList_EndDrag() et ImageList_Destroy(). On relâche ensuite la capture souris avec ReleaseCapture(). A partir de là, on ajoute un nouvel élément à l'emplacement pointé par le curseur de la souris, on lui transmet le contenu de l'élément sélectionné puis on supprime ce dernier.
Pour les détails des fonctions et messages se référer à la MSDN.
Messages postés
1910
Date d'inscription
vendredi 18 juin 2004
Statut
Modérateur
Dernière intervention
14 novembre 2014
13
Je viens de déposer un exemple complet sur le site:
Réarranger les lignes d'une ListView à la souris
Messages postés
4
Date d'inscription
samedi 21 avril 2007
Statut
Membre
Dernière intervention
25 octobre 2008

hmm ouép je vois, je vais essayer ça, Merci
Messages postés
123
Date d'inscription
samedi 14 juillet 2007
Statut
Membre
Dernière intervention
29 mars 2009
1
cf les ng apis fr.comp.os.ms-windows.programmation,
comp.os.ms-windows.programmer.win32, etc...
 code C  posté maintes fois depuis 15 ans
Messages postés
1910
Date d'inscription
vendredi 18 juin 2004
Statut
Modérateur
Dernière intervention
14 novembre 2014
13
jeffy131 >> Si tu ne comprends pas le problème posé ou si tu ne connais pas la réponse, ce n'est pas la peine de donner des liens inutiles.
Messages postés
4
Date d'inscription
samedi 21 avril 2007
Statut
Membre
Dernière intervention
25 octobre 2008

Excellent, merci du coup de main :)