Taille de chaines de caracteres

Utilisateur anonyme - 26 août 2005 à 15:21
 Utilisateur anonyme - 26 août 2005 à 19:55
Bonjour,

J'ai besoin de connaitre la taille d'une chaine de caratere, EN PIXEL. Je ne souhaite pas savoir combien la chaine comporte de caractère mais je souhaite connaitre le nombre de pixels de long fait cette chaine. Quelqu'un sait faire, moi je vois pas de solution nin meme de pistes a creuser

7 réponses

crenaud76 Messages postés 4172 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 9 juin 2006 28
26 août 2005 à 15:30
Regarde du coté de la propriété TextWidth d'une form ...
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
26 août 2005 à 19:00
Salut
Il faut utiliser la fonction TextWidth d'une forme ou d'une PictureBox (PB) :
- Insères une PB sur ta forme (rends la invisible si besoin, elle ne sert pas graphiquement)
- Quand tu veux calculer la longueur, il te suffit d'attribuer les propriétés de la fonte à la PB (PB.Font.Name, .Font.Bold ?, Font.Italic ?, Font.Size ...)
- La valeur en Twips = PB.TextWidth("Le texte que tu veux mesurer")
(1 pixel = Screen.TwipsPerPixelX)

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage. (Socrate)
0
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
26 août 2005 à 19:13
ou alors les API's











Private Type POINTAPI

X As Long

Y As Long

End Type



Private Declare Function GetTextExtentPoint32 Lib "gdi32" Alias
"GetTextExtentPoint32A" (ByVal hdc As Long, ByVal lpsz As String, ByVal
cbString As Long, lpSize As POINTAPI) As Long



Private Sub Command1_Click()

Dim Pt As POINTAPI

Dim Texte As String



Texte = "Hello"

GetTextExtentPoint32 Me.hdc, Texte, Len(Texte), Pt

MsgBox "Largeur= " & Pt.X & " pixels"

MsgBox "hauteur= " & Pt.Y & " pixels"



End Sub


Daniel
0
Utilisateur anonyme
26 août 2005 à 19:18
Merci a vous tous. Pouvez vous me confirmez que ces exemples marchent tous en .NET ?

merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
26 août 2005 à 19:24
heu non pas du tout !

c'est du VB6 donc faut adapter.

de même remplace Type par une Structure







Private Type POINTAPI

X As int32

Y As int32

End Type




Private Declare Function GetTextExtentPoint32 Lib "gdi32" Alias
"GetTextExtentPoint32A" (ByVal hdc As int32, ByVal lpsz As String, ByVal
cbString As int32, lpSize As POINTAPI) As int32

Daniel
0
Utilisateur anonyme
26 août 2005 à 19:53
je vois ca lundi matin. Merci qd meme.
0
Utilisateur anonyme
26 août 2005 à 19:55
et qu'est que le me.hdc ? (si je veux convertir en .Net ...)
0
Rejoignez-nous