Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

ListView: hauteur des lignes

4 réponses
Avatar
Sylvain SF
La question est présente mille fois sur le net, mais pas
la réponse; peut-être parce qu'il n'y en a pas de positive.

peux-t'on modifier la hauteur des lignes d'un contrôle ListView
en mode LVS_REPORT ?

(le contrôle en question est partiellement dessiné à la main
par traitement de NM_CUSTOMDRAW mais il n'a pas le style
LVS_OWNERDRAWFIXED).

Sylvain.

4 réponses

Avatar
Christian ASTOR
Sylvain SF wrote:

La question est présente mille fois sur le net, mais pas
la réponse; peut-être parce qu'il n'y en a pas de positive.

peux-t'on modifier la hauteur des lignes d'un contrôle ListView
en mode LVS_REPORT ?

(le contrôle en question est partiellement dessiné à la main
par traitement de NM_CUSTOMDRAW mais il n'a pas le style
LVS_OWNERDRAWFIXED).



Par exemple en changeant les dimensions de l'ImageList (LVSIL_SMALL)
Avatar
Christian ASTOR
Sylvain SF wrote:

Christian ASTOR a écrit :
Par exemple en changeant les dimensions de l'ImageList (LVSIL_SMALL)





j'ai essayé d'associer une HIMAGELIST créée avec une taille (100,30)
et initialisée depuis une bitmap ressource de nx100 x 30 px.
l'imageList est correcte (nb d'items contenu conforme, ImgDraw
dans un HDC de test correct), mais cela n'a pas redimensionné
les hauteurs des lignes du listView.



En faisant passer de 16 à 48 par exemple, ça me donne, sous XP
de
http://nsa06.casimages.com/img/2009/03/20/09032001425419053.jpg
à
http://nsa06.casimages.com/img/2009/03/20/090320014314770306.jpg

(LoadImage() ou LoadBitmap(), ImageList_Create(48, 48, ...),
ImageList_AddMasked(), ListView_SetImageList() & LVSIL_SMALL)
Avatar
Sylvain SF
Christian ASTOR a écrit :

peux-t'on modifier la hauteur des lignes d'un contrôle ListView
en mode LVS_REPORT ?



Par exemple en changeant les dimensions de l'ImageList (LVSIL_SMALL)



j'ai essayé d'associer une HIMAGELIST créée avec une taille (100,30)
et initialisée depuis une bitmap ressource de nx100 x 30 px.
l'imageList est correcte (nb d'items contenu conforme, ImgDraw
dans un HDC de test correct), mais cela n'a pas redimensionné
les hauteurs des lignes du listView.
je n'ai pas fait ici un test spécifique avec des images 32x32
telles qu'attendu par un ListView en mode grandes icones,
j'ai le souvenir que cela ne fonctionnait pas quand le mode
était 'report'.

je vais refaire qlqs tests.

Sylvain.
Avatar
Sylvain SF
Christian ASTOR a écrit :

En faisant passer de 16 à 48 par exemple, ça me donne, sous XP de
http://nsa06.casimages.com/img/2009/03/20/09032001425419053.jpg
à http://nsa06.casimages.com/img/2009/03/20/090320014314770306.jpg

(LoadImage() ou LoadBitmap(), ImageList_Create(48, 48, ...),
ImageList_AddMasked(), ListView_SetImageList() & LVSIL_SMALL)



cela fonctionne parfaitement en effet (<http://cjoint.com/?dwnul3kEAU>).

excès de zèle (bug!) de mon wrapper de ListView (son setImageList)
qui déterminait le paramètre iImageList en fonction de la taille
des images et non du mode d'affichage de la liste. shame.

merci.
Sylvain.