List View Drag'n'drop

Résolu
K_3
Messages postés
4
Date d'inscription
samedi 21 avril 2007
Statut
Membre
Dernière intervention
25 octobre 2008
- 19 oct. 2008 à 12:45
K_3
Messages postés
4
Date d'inscription
samedi 21 avril 2007
Statut
Membre
Dernière intervention
25 octobre 2008
- 25 oct. 2008 à 14:30
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

racpp
Messages postés
1910
Date d'inscription
vendredi 18 juin 2004
Statut
Modérateur
Dernière intervention
14 novembre 2014
14
19 oct. 2008 à 17:05
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.
3
racpp
Messages postés
1910
Date d'inscription
vendredi 18 juin 2004
Statut
Modérateur
Dernière intervention
14 novembre 2014
14
22 oct. 2008 à 00:12
Je viens de déposer un exemple complet sur le site:
Réarranger les lignes d'une ListView à la souris
3
K_3
Messages postés
4
Date d'inscription
samedi 21 avril 2007
Statut
Membre
Dernière intervention
25 octobre 2008

19 oct. 2008 à 17:41
hmm ouép je vois, je vais essayer ça, Merci
0
jeffy131
Messages postés
123
Date d'inscription
samedi 14 juillet 2007
Statut
Membre
Dernière intervention
29 mars 2009
1
20 oct. 2008 à 14:19
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
racpp
Messages postés
1910
Date d'inscription
vendredi 18 juin 2004
Statut
Modérateur
Dernière intervention
14 novembre 2014
14
20 oct. 2008 à 16:35
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.
0
K_3
Messages postés
4
Date d'inscription
samedi 21 avril 2007
Statut
Membre
Dernière intervention
25 octobre 2008

25 oct. 2008 à 14:30
Excellent, merci du coup de main :)
0