C'est ça le problème. Tout ça je l'ai fait et ma liste se rempli correctement et le lParam et bien pris en compte parcequ'il me sert après.
Donc moi je ne vois pas où est le problème!! je suis perdue![]()
C'est ça le problème. Tout ça je l'ai fait et ma liste se rempli correctement et le lParam et bien pris en compte parcequ'il me sert après.
Donc moi je ne vois pas où est le problème!! je suis perdue![]()
Salut
Voici ce que j'ai fait :
Dans un CListCtrl, j'affiche des noms de fichiers en premier item et leur taille en subItem,
Pour un tri sur les tailles : j'ai mis en Data les tailles avec un
res = ((CListCtrl *)GetDlgItem(IDC_LIST1))->SetItem( i, 0,LVIF_PARAM, 0, 0, 0, 0, (LPARAM)taille);
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 // la fonction de tri static int CALLBACK MyCompareProc1(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort) { return (DWORD)lParam1 > (DWORD)lParam2; } // appel par ((CListCtrl *)GetDlgItem(IDC_LIST1))->SortItems(MyCompareProc1, 0); // dans ce cas très simple pas besoin de paramètre supplémentaire
Pour un tri sur les noms de fichier j'ai mis en data le numéro d'insertion de l'item
res = ((CListCtrl *)GetDlgItem(IDC_LIST2))->SetItem(i, 0,LVIF_PARAM, 0, 0, 0, 0, (LPARAM)i);
Pas besoin de faire réaffficher le CListCtrl !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 // la fonction de tri static int CALLBACK MyCompareProc2(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort) { CListCtrl* pListCtrl = (CListCtrl*) lParamSort; CString strItem1 = pListCtrl->GetItemText(lParam1, 0); CString strItem2 = pListCtrl->GetItemText(lParam2, 0); return stricmp(strItem1, strItem2); } // appel par ((CListCtrl *)GetDlgItem(IDC_LIST1))->SortItems(MyCompareProc2, (LPARAM)((CListCtrl *)GetDlgItem(IDC_LIST1))); // ici il faut l'adresse du CListCtrl pour pouvoir extraire les info
Ton erreur est je pense ici :
SortItems(MyCompareProc, (LPARAM) this);
Ce n'est pas this, mais le CListCtrl qu'il faut passer.
"La haine seule fait des choix" - Koan Zen
"Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
"Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
Faites du Prolog, ça vous changera les idées !
Ma page Prolog
Mes codes sources commentés
Mon avatar : La Madeleine à la veilleuse de Georges de La Tour
Partager