Bonjour à tous !
Je fais un programme avec une listview à 5 colonnes, dont la dernière est une progressbar.
Pour gérer tout ça, j'ai utilisé le style LVS_OWNERDRAWFIXED, et je dessine tout à la main.
Tout fonctionne de ce coté là (le texte s'affiche et les progressbar aussi).
D'un autre coté, je veux faire en sorte de pouvoir trier cette listview en cliquant sur les colonnes.
En rajoutant deux trois petits trucs, j'arrive à obtenir ce que je veux, c'est-à-dire je peux trier toutes mes colonnes suivant certains paramètres.
Par contre, pour gérer la progressbar, je reçois l'évènement WM_DRAWITEM, et pour pouvoir trier la listview, LVN_GETDISPINFO.
Et le problème c'est que ça me fait l'un ou l'autre.

Si je fais
ListView_SetExtendedListViewStyleEx(hListView, 0, LVS_OWNERDRAWFIXED);
je ne peux plus trier ma ListView (en fait je crois que si, mais plus rien ne s'affiche, juste ce que je fais "manuellement"),
et si je fais
ListView_SetExtendedListViewStyleEx(hListView, 0, LVS_EX_FULLROWSELECT | LVS_EX_HEADERDRAGDROP);
je peux trier ma ListView mais les progressbar ne s'affichent plus .



(Bien sûr j'ai essayé les deux styles en meme temps...)
Choix cornélien, n'est-ce pas ?
Alors j'ai essayé de dessiner les progressbar dans LVN_GETDISPINFO, mais je n'y arrive pas.
Je ne sais pas si c'est parce qu'ainsi FillRect() ne fonctionne plus, ou bien que je n'arrive pas à récupérer le bon item considéré
(je fais :
case LVN_GETDISPINFO:
pDispInfo = (NMLVDISPINFO*)lParam;
//Je gère le tri
lpDrawItem = (LPDRAWITEMSTRUCT) &pDispInfo->item
//Je gère les progressbar
)
Si vous savez comment je peux avoir le tri ET les progressbar, je vous serai grandement reconnaissant !
Je me penche dessus depuis un certain temps

...
Alors si vous avez une autre manière de procéder, ou si vous avez trouvé une faille dans la mienne, j'attends vos réponses !
Merci d'avoir lu mon long problème

A+
Bonne programmation
Site