Drag&Drop

akalys Messages postés 31 Date d'inscription mercredi 6 février 2008 Statut Membre Dernière intervention 6 janvier 2010 - 19 févr. 2008 à 09:46
gvollant Messages postés 22 Date d'inscription mardi 3 mars 2009 Statut Membre Dernière intervention 3 mars 2009 - 19 févr. 2008 à 21:14
Bonjour à tous

Utilisant l'api windows ac visual studio, j'ai tester un Drag&Drop avec une simple listview dans une boite de dialogue avec le code suivant :

case WM_INITDIALOG:

DragAcceptFiles(GetDlgItem(dlg,IDC_LIST2),TRUE);

case WM_DROPFILES:
           
            int count;
            HDROP hdrop;
            hdrop=(HDROP)(wparam);
            char buffer[MAX_PATH]; //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! DECLARATION DE BUFFER QUE LA !!!!!!  (in "case")
            count = DragQueryFile(hdrop,0xFFFFFFFF,0,0);
            for (int i = 0; i < count; i += 1)
            {
                DragQueryFile(hdrop,i,buffer,MAX_PATH);
                ListView_InsertItem(GetDlgItem(dlg,IDC_LIST2),(LPARAM)&LvItem);   
                ff.AddSubItem(GetDlgItem(dlg,IDC_LIST2),0,buffer);
            }
            return TRUE;

Cela fonctionne très bien , le Drag&drop marche quand je glisse le fichier dans ma boite dans dialogue ou dans ma listview.
Je veux implémenter ce petit algo dans un programme , mais la problème.
Le drag and drop ne fonctionne pas lorsque je glisse sur mas liste view, mais juste quand je glisse sur la boite de dialogue ( a lexterieur de ma listview).

Pourtant j'ai bien régler lors de ma creation de ma boite de dialogue la fct Accept file sur true pour ma listview. ( lorsque je glisse un fichier sur la listview la souris change bien de forme pour signaler un cliquer glisser, mais rien)

Merci d'avance   

Vive le rugby XIII

2 réponses

gvollant Messages postés 22 Date d'inscription mardi 3 mars 2009 Statut Membre Dernière intervention 3 mars 2009 13
19 févr. 2008 à 21:14
Je pense qu'il faut sous-classé la ListView et recuperer ainsi le message WM_DROPFILE

voire http://chgi.developpez.com/windows/subclassing/
gvollant Messages postés 22 Date d'inscription mardi 3 mars 2009 Statut Membre Dernière intervention 3 mars 2009 13
19 févr. 2008 à 21:14
Je pense qu'il faut sous-classé la ListView et recuperer ainsi le message WM_DROPFILE

voire http://chgi.developpez.com/windows/subclassing/
Rejoignez-nous