2009-11-18 21 views
4

J'appelle la fonction Win32 DrawText pour sortir du texte dans un contexte de périphérique. Le texte est long et se termine bien sur une deuxième ligne. Le problème est que je dois réduire l'espace entre les lignes un peu (je suppose que diminuer la hauteur de la ligne?). auriez vous des idées pour faire ça?Win32 DrawText hauteur de la ligne

Je voudrais juste appeler DrawText deux fois (un pour chaque ligne), mais alors je dois faire mon propre retour à la ligne.

Existe-t-il un autre moyen?

Merci

Répondre

3

Une possibilité consiste à mettre le texte dans un contrôle d'édition enrichi désactivé Je pense que cela vous donne beaucoup de contrôle sur le formatage

Si vous écrivez votre propre mot de passe, vous voulez probablement utiliser GetTextExtentExPoint() pour mesurer combien

5

Il a été un bon moment que je me suis occupé avec cela sur Win32, mais je crois que la police elle-même définit l'espacement « attendu » en définissant l'espace vide au-dessous du caractère. Drawtext utilise cette hauteur complète pour positionner la ligne suivante lors du wrapping Si vous voulez faire quelque chose qui n'est pas en accord avec ce dimensionnement, je crois que vous devrez faire vos propres calculs de wrapping et plusieurs appels DrawText (

+1

Corriger, les lignes d'espaces GDI se basent automatiquement sur les métriques de police, je n'ai jamais vu quoi que ce soit qui permette de modifier l'espacement utilisé par 'DrawText', à moins de créer un copie modifiée de la police. –