Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
959 connectés 

  FORUM HardWare.fr
  Programmation
  Divers

  Savoir la taille en pixel que prendra un texte dans une police x

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Savoir la taille en pixel que prendra un texte dans une police x

n°528640
jagstang
Pa Capona ಠ_ಠ
Posté le 01-10-2003 à 23:20:35  profilanswer
 

Je me demandais s'il y avait un algo, pour savoir, avant de le dessiner, la place que prendrait un texte.  
 
Par exemple
 
"Je mange des cerises" en Verdana, 14 ---> 28 px
 
La solution serait de prendre un fonte à largeur fixe, mais bon. c'est pas terrible terrible...
 
Si qqn sait me dire la largeur de chaque lettre, je peux me débrouiller.
 
J'ai développé une librairie pour générer des graphiques SVG en C#, et le wordwrapping n'existe pas en version 1.1 (il est prévu pour la version de SVG 1.2)
 
Une démo de ma librairie : http://dev.icare.ch/svgdemo/ (plugin SVG à télécharger)
 
En fait j'aimerais adapter mon texte sur plusieurs lignes dans un carré (max 3 lignes) et si le texte est trop long, le diminuer
 
Si quelqu'un a une piste... Merci d'avance

mood
Publicité
Posté le 01-10-2003 à 23:20:35  profilanswer
 

n°528693
Konar
Posté le 01-10-2003 à 23:53:16  profilanswer
 

la fonction GetTextExtentPoint32() de l'api win32 fait ca a merveille.
 
Si t'as pas le droit d'utiliser du win32, alors je sais pas.

n°528704
jagstang
Pa Capona ಠ_ಠ
Posté le 02-10-2003 à 00:00:17  profilanswer
 

Je vais tester ça demain... merci !

n°528981
jagstang
Pa Capona ಠ_ಠ
Posté le 02-10-2003 à 09:10:24  profilanswer
 

C'est pas tout à fait ça, car je ne peux pas préciser la fonte et la taille de celle-ci...


Message édité par jagstang le 02-10-2003 à 09:10:40

---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
n°529023
gatorette
Posté le 02-10-2003 à 09:44:46  profilanswer
 

JagStang a écrit :

C'est pas tout à fait ça, car je ne peux pas préciser la fonte et la taille de celle-ci...


Si, en définissant ta fonte dans le DC que tu passes à ta fonction. Voici un petit bout de code qui me permettait d'avoir la taille d'un texte dans une barre d'état (en C/C++/MFC):

Code :
  1. NONCLIENTMETRICS infoNCMetrics;
  2. infoNCMetrics.cbSize = sizeof( NONCLIENTMETRICS );
  3. SystemParametersInfo( SPI_GETNONCLIENTMETRICS, sizeof( NONCLIENTMETRICS ), &infoNCMetrics, 0 );
  4. CFont fntStatus;
  5. fntStatus.CreateFontIndirect( &infoNCMetrics.lfStatusFont );
  6. CDC *pDC = this->m_wndStatusBar.GetDC();
  7. CFont *oldFont = pDC->SelectObject( &fntStatus );
  8. CSize szText = pDC->GetOutputTextExtent( this->m_wndStatusBar.GetPaneText(pCmdUI->m_nIndex) );
  9. pDC->LPtoDP( &szText );
  10. pDC->SelectObject( oldFont )->DeleteObject();


 
Ici, j'utilise la fonction GetOutputTextExtent et je récupère la fonte utilisée avec SystemParametersInfo.


---------------
each day I don't die is cheating
n°529107
youdontcar​e
Posté le 02-10-2003 à 10:58:38  profilanswer
 

JagStang a écrit :

"Je mange des cerises" en Verdana, 14 ---> 28 px

Ça dépend de ta façon de créer la fonte, avec internal leading ou sans : regarde le signe de nHeight dans http://msdn.microsoft.com/library/ [...] t_8fp0.asp
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Divers

  Savoir la taille en pixel que prendra un texte dans une police x

 

Sujets relatifs
texte de longueur variable dans cellule fixeimage qui insert du texte dans un textarea
[Une colle] Lire un fichier texte à partir du poste d'un client.[HTML] Texte pas centré sur ma frame /-(
[resolu] Synchroniser un texte descriptif et des images en floatComment faire défiler un texte dans un cadre ???
[PHP] uri aléatoire dans du textelecture ligne a ligne d'un gros fichier texte
[Java][Swing] Problème de taille avec JSplitPane [résolu]tableau et débordement de texte
Plus de sujets relatifs à : Savoir la taille en pixel que prendra un texte dans une police x


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR