Scroll bar horizontal dans une list box [Résolu]

Signaler
Messages postés
9
Date d'inscription
jeudi 10 mars 2005
Statut
Membre
Dernière intervention
12 décembre 2007
-
Messages postés
9
Date d'inscription
jeudi 10 mars 2005
Statut
Membre
Dernière intervention
12 décembre 2007
-
Salut,
Je developpe une appli WIN32 et jai un ptit pb:
Est-ce que qqun peut me dire pourquoi la scrollbar horizontal n'apparait pas quand un element de ma liste est trop long. (J'ai bien mis WS_HSCROLL)

Merci.

6 réponses

Messages postés
2070
Date d'inscription
mardi 22 avril 2003
Statut
Membre
Dernière intervention
3 juillet 2006
8
wParam = taille max en pixel
lParam = 0
Messages postés
2070
Date d'inscription
mardi 22 avril 2003
Statut
Membre
Dernière intervention
3 juillet 2006
8
Pour savoir la taille d'un texte en pixel :
char szText[] = "coucou";

HDC hdc = GetDC(NULL);
SIZE size;
GetTextExtentPoint32(hdc, szText, strlen(szText), &size);
ReleaseDC(NUILL, hdc);

size contient la taille en pixel de la chaîne.

Il suffit de calculer la taille de toutes les chaînes ajoutées à la liste, de mémoriser le max et de le donner à la ListBox.
Messages postés
2070
Date d'inscription
mardi 22 avril 2003
Statut
Membre
Dernière intervention
3 juillet 2006
8
Le scrolling horizontal n'est pas géré en interne, il faut mettre le style WS_HSCROLL et spécifier la taille max d'une ligne en pixel par le message LB_SETHORIZONTALEXTENT.

http://www.cppfrance.com/code.aspx?id=23188
Messages postés
9
Date d'inscription
jeudi 10 mars 2005
Statut
Membre
Dernière intervention
12 décembre 2007

OK
et tu mets quoi pour les 2 derniers parametres de SendMessage?
Messages postés
9
Date d'inscription
jeudi 10 mars 2005
Statut
Membre
Dernière intervention
12 décembre 2007

et pour une taille max de 10 char ca fait combien de pixel?
Messages postés
9
Date d'inscription
jeudi 10 mars 2005
Statut
Membre
Dernière intervention
12 décembre 2007

Merci,
ca fonctionne