Ecrire avec l'API windows

Résolu
Signaler
Messages postés
69
Date d'inscription
lundi 10 février 2003
Statut
Membre
Dernière intervention
29 août 2012
-
Messages postés
141
Date d'inscription
lundi 23 février 2004
Statut
Membre
Dernière intervention
25 octobre 2006
-
Est ce que quelqun sait comment on fait apres avoir ecrit un texte avec l'API windows
pour savoir la taille en pixel du texte
je m'explique j'utilise TextOut  toto.hdc,10,10,"Salut ",len("Salut ")
et je voudrais positionnez sur la meme ligne albert
sa donnerai la phrase salut albert
et ce independament de la police de la taille,etc
et surtout sans chevauchement

merci c'est urgent

5 réponses

Messages postés
5
Date d'inscription
jeudi 13 novembre 2003
Statut
Membre
Dernière intervention
23 août 2010

As tu essayé TextWidth("Salut") / 15 ?
Messages postés
17288
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
71
Infern0, TRES mauvais, ce /15

utilises Screen.TwipsPerPixelX

sur un ecran en 16/9 tu aurait certainement des soucis, sans cela

Renfield
Admin CodeS-SourceS- MVP Visual Basic
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
131
N'utilise pas TextOut mais DrawText qui te permet bien plus de choses, telles que l'alignement par exemple, qui te permet de calculer le rectangle englobant du texte (avec gestion de la font bien entendu !), etc.
Messages postés
69
Date d'inscription
lundi 10 février 2003
Statut
Membre
Dernière intervention
29 août 2012

Merci beaucoup
quand a drawtext pourquoi ce casser le cul quand ya plus simple
Messages postés
141
Date d'inscription
lundi 23 février 2004
Statut
Membre
Dernière intervention
25 octobre 2006

Lu,
j'ai fait un programme y'a tres longtemps (création etiquette[codebarre/logo/texte/image...ect])
l'api TexTout est tres sympa avec CreateFont je trouve

exemple utilisant une picturebox
pour la taille, utilise cette api
Public 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 Type POINTAPI
    X As Long
    Y As Long
End Type
dim Txt as String
Public TextSize As POINTAPI
Txt = "TextOutExemple"
With TaPicureBox
..(tu crée ta police) ..createfont
..tu place la police à ta pic ..selectobject(.hdc, createfont)
GetTextExtentPoint32 .hdc, Txt, Len(Txt), TextSize
'-------------------------------------------------
.Width = TextSize.X * Screen.TwipsPerPixelX
.Height = TextSize.Y * Screen.TwipsPerPixelY
End With