mogwai93
Messages postés362Date d'inscriptionmardi 31 décembre 2002StatutMembreDernière intervention 4 novembre 2023
-
28 août 2012 à 15:54
racpp
Messages postés1909Date d'inscriptionvendredi 18 juin 2004StatutModérateurDernière intervention14 novembre 2014
-
28 août 2012 à 22:52
Bonjour
Je cherche à connaître le nombre de lignes utilisé par une chaine dans un static.
GetTextExtentPoint32 me donne bien le nombre de pixels de la chaine
donc en divisant par la largeur du static, je devrais trouver le nombre de lignes
or en fonction du nombre d'espaces et du nombre de caractères de certains mots, le nombre de lignes n'est plus égal à ce calcul (car l'affichage du static rajoute des retour chariot)
est-ce qu'il y a une méthode "toute faite" pour calculer ce nombre de lignes
ou je dois faire cette méthode ( = découper ma chaine en sous chaines de chaque mot puis calculer la longueur en pixels de chaque mot, ...) ?
mogwai93
Messages postés362Date d'inscriptionmardi 31 décembre 2002StatutMembreDernière intervention 4 novembre 2023 28 août 2012 à 19:08
pour DrawText + DT_CALCRECT, le parametre RECT s'adapte sur la largeur et non sur la hauteur (cf msdn, sauf si la chaine contient les retour chariot)
mon static a une largeur fixe mais une hauteur variable (pas trop non plus)
ici, j'ai :
disons que ma chaine, c'est "ligne1 ligne2"
et que mon static ne peut afficher que 50 pixels (par exemple - je n'ai pas fait le calcul)
ce qui fait que le static affichera :
ligne1
ligne2
or avec DrawText + DT_CALCRECT, je passe "ligne1 ligne2" et non "ligne1 \r\nligne2"
donc il me retourne le nombre de pixel sans le saut de ligne
ce que je veux savoir, c'est le nombre de lignes affichées par le static alors que ma chaine ne contient pas les retour chariot (donc le static me les rajoute lors de l'affichage)