Cherche api pour ecrire

le cancre Messages postés 292 Date d'inscription mercredi 25 octobre 2006 Statut Membre Dernière intervention 27 novembre 2009 - 28 oct. 2006 à 12:26
le cancre Messages postés 292 Date d'inscription mercredi 25 octobre 2006 Statut Membre Dernière intervention 27 novembre 2009 - 29 oct. 2006 à 11:10
Salut à tous,
Le but de mon programme c'est d'écrire un caractere ou une phrase 
dans la picturebox...
on va prendre l'exemple d'une picturebox avec un width x et un height y

(j'utilise l'api CreateFont (pour ma police) et l'api TextOut pour écrire dans la picturebox.)
 
le caractere ou ma phrase doit prendre toute la place de la picturebox, une police qui s'adapte....
les caracteres ont la meme hauteur que la picturebox..la phrase meme si elle est longue, elle doit tenir dans la picturebox

à une police de 20;la taille d'un caractere est de 0,35

il faut que je trouve une formule comme ca

TaillePoliceSuivantTaillePictureBox =  ................??? :)

5 réponses

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
28 oct. 2006 à 12:35
Utilise la fonction DrawText plutôt qui te permet de calculer le rectangle englobant le texte : tant que le rectangle est plus grand que la taille du picturebox, alors réduire la police...
0
le cancre Messages postés 292 Date d'inscription mercredi 25 octobre 2006 Statut Membre Dernière intervention 27 novembre 2009
28 oct. 2006 à 12:47
Re,
DrawText ne gère pas la hauteur des caractères mais juste la longueur, j'ai tenté de faire toutes les combinaisons possible avec ..
elle donne juste une police pour la longueur des caractères
j'ai besoin d'avoir les 2, longueur et hauteur
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
28 oct. 2006 à 13:07
Si si, il me semble bien que la fonction gère la hauteur et la largeur pour le rectangle englobant (il faut utiliser le flag DT_CALCRECT), en tout cas je m'en suis déjà servit pour ce genre de chose (calcul de la taille de police optimale pour rentrer dans un rectangle).
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
28 oct. 2006 à 13:45
Bonjour,

1) tu as raison d'utiliser TextOut
2) tu as raison de "jouer" avec l'espacement de la police
3) il te faut également "calculer" un peu. TextWidth et Textheight t'y aideront (aide en ligne), mais tu peux les calculer également par API.


Tout le reste n'est que pure arithmétique....
0

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

Posez votre question
le cancre Messages postés 292 Date d'inscription mercredi 25 octobre 2006 Statut Membre Dernière intervention 27 novembre 2009
29 oct. 2006 à 11:10
Lu DARSIDIOUS et jmfmarques : )

en ce moment je suis sur un projet qui me prend toutes mes nuits, dés que j'ai fini....j'vais tenté ta méthode Dark

jmfmarques,
j'ai passé 6 mois à faire cette source(10 000 lignes de code) et je l'ai abandonné à cause du problème de police...

j'utilise  GetTextExtentPoint32  pour connaitre  le textwidth et heightText ....mais rien à faire....mon cerveau à du mal!!!
 j'arrive pas à cette fonction qui me donne la bonne taille de police

voici mon ancienne technique :

rapport =  (PoliceTaille.Text * 0.35) / Pic.Width

quand j'augmente la taille de la pic ,je fais ca pour trouver la bonne police à mettre 

 xH = (.Height) / 15
 xW = rapport * .Width
CreateMyFont = CreateFont(xH, xW, 0, 0, FW_.............
selectobject .hdc, CreateMyFont
TextOut .hdc, 0, 0, Txt, Len(Txt)

quand c'est un mot ou une petite phrase,cette operation marche bien
j'ai le bon rapport... mais quand il s'agit d'une longue phrase, j'ai un dépassement de caractères
0
Rejoignez-nous