Comment connaitre la longueur d'un texte en pixel ?

Résolu
cs_salazar Messages postés 241 Date d'inscription mercredi 1 octobre 2003 Statut Membre Dernière intervention 19 février 2006 - 22 oct. 2004 à 13:21
cs_salazar Messages postés 241 Date d'inscription mercredi 1 octobre 2003 Statut Membre Dernière intervention 19 février 2006 - 22 oct. 2004 à 16:57
J'affiche du texte dans un ListBox, et je souhaite tronquer le texte dès qu'il a atteind une certaine longueur.
Cette longueur est liée à la police, au format, donc pas uniquement au nombre de caractères.

J'utilise une ListBox standard (1 seule colonne possible) dans laquelle je simule 2 colonnes en insérant une tabulation (par API) entre 2 textes.
Le premier est toujours un TITRE de longueur variable, et le second est une DUREE de longueur constante.
Evidement, si le TITRE est trop proche ou supperpose la DUREE, la tabulation fera disparaitre la DUREE (qui est toujours sur le bord de la fenetre).
C'est visuellement semblable à WinAmp...

Merci de votre soutient,
ERIC.

3 réponses

cs_salazar Messages postés 241 Date d'inscription mercredi 1 octobre 2003 Statut Membre Dernière intervention 19 février 2006 2
22 oct. 2004 à 16:57
Merci pour l'API.

Voici un exemple d'utilisation ( à vos de faire les déclarations) :

Dim MyString as String
Dim StringSize as POINTAPI

GetTextExtentPoint32 Form1.hdc, MyString, Len(MyString), StringSize

ERIC
:big)
3
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
22 oct. 2004 à 14:24
il faut que le container (le parent) ait la même police
Lg = List1.Parent.TextWidth("texte")

correction à faire si en Twips
Lg = Lg/ Screen.TwipsPerPixelX
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
22 oct. 2004 à 14:34
Haute precision direct depuis hdc par API:
GetTextExtentPoint32()

ciao...
BruNews, MVP VC++
0
Rejoignez-nous