Redimension LB_SETHORIZONTALEXTENT sur List Box [Résolu]

juki_webmaster 947 Messages postés mercredi 19 novembre 2003Date d'inscription 5 avril 2008 Dernière intervention - 4 avril 2006 à 02:27 - Dernière réponse : juki_webmaster 947 Messages postés mercredi 19 novembre 2003Date d'inscription 5 avril 2008 Dernière intervention
- 4 avril 2006 à 14:15
Bonjour,


En suivant et retirant des petits bouts de codes par-ci par-là pour la scrollbar horizontal, j'ai appris quelle ce redimentionne en Pixel.

Pour le moment j'appliquer une dimension du type: strlen(chaine) * 7

Petit bout de code :

..
while(..) {
..
len_hscroll = maxlen > len_hscroll ? maxlen : len_hscroll;
..
}
..
SendMessage(hlist, LB_SETHORIZONTALEXTENT, len_hscroll*7, 0);
..



Je voudrais savoir si il ya une methode plus propre et qui s'adapte parfaitement à la longeur du texte/police/etc de la plus long ligne de la list box.


Merci d'avance.
Afficher la suite 

Votre réponse

2 réponses

Meilleure réponse
BruNews 21054 Messages postés jeudi 23 janvier 2003Date d'inscription 7 novembre 2014 Dernière intervention - 4 avril 2006 à 08:49
3
Merci
On n'applique pas un multiplicateur par simple décision, on calcule avec précision:
GetTextExtentPoint32

ciao...
http://dev.winsysdev.com
BruNews, MVP VC++

Merci BruNews 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 95 internautes ce mois-ci

Commenter la réponse de BruNews
juki_webmaster 947 Messages postés mercredi 19 novembre 2003Date d'inscription 5 avril 2008 Dernière intervention - 4 avril 2006 à 14:15
0
Merci
Merci, sa marche impec

hdc = GetDC(hlist);
SelectObject(hdc, (HFONT)SendMessage(hlist, WM_GETFONT, 0, 0));
GetTextExtentPoint32(hdc, load[maxlenid], maxlen, &hssize);
len_hscroll = hssize.cx;
ReleaseDC(hlist, hdc);
SendMessage(hlist, LB_SETHORIZONTALEXTENT, len_hscroll+5, 0);
SendMessage(hlist, WM_SETREDRAW, 1, 0);
SendMessage(hlist, LB_SETCURSEL, 0, 0);
Commenter la réponse de juki_webmaster

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.