Bonjour,
J'ai une ListView multi colonnes et j'aimerais avoir le tri dessus (sur toutes les colonnes)
pour faire le tri :
int Tri = 1;
int CALLBACK myCompFunc(LPARAM ligne1, LPARAM ligne2, LPARAM sortParam)
{
int res;
char buffer [MAX_PATH], buffer2 [MAX_PATH];
int col = sortParam;
ListView_GetItemText(hListView, ligne1, col, buffer, sizeof(buffer));
ListView_GetItemText(hListView, ligne2, col, buffer2, sizeof(buffer2));
res = strcmp (buffer, buffer2);
if (Tri > 0) return res;
return -res;
}
Lors du clic sur la colonne du ListView
NMLISTVIEW* pListView = (NMLISTVIEW*)lParam;
ListView_SortItems(hListView, myCompFunc, pListView->iSubItem);
Tri = - Tri;
Pour insérer mes lignes :
item.mask = LVIF_TEXT | LVIF_PARAM;
item.iItem = index;
item.lParam = index;
item.pszText = (LPTSTR)text;
item.iSubItem = 0;
ListView_InsertItem(hListView, item);
Pour alimenter mes colonnes :
item.mask = LVIF_TEXT;
item.iItem = index;
item.pszText = (LPTSTR)text;
item.iSubItem = subIndex;
ListView_SetItem(hListView, item);
Le remplissage de ma ListView fonctionne.
Le tri semble fonctionner lors du 1er clic, mais pas les suivants (quelle que soit la colonne)
D'où peut venir mon problème ?
Merci