Partager via


GetTextExtentPoint32W, fonction (wingdi.h)

La fonction GetTextExtentPoint32 calcule la largeur et la hauteur de la chaîne de texte spécifiée.

Syntaxe

BOOL GetTextExtentPoint32W(
  [in]  HDC     hdc,
  [in]  LPCWSTR lpString,
  [in]  int     c,
  [out] LPSIZE  psizl
);

Paramètres

[in] hdc

Handle vers le contexte de l’appareil.

[in] lpString

Pointeur vers une mémoire tampon qui spécifie la chaîne de texte. La chaîne n’a pas besoin d’être terminée par null, car le paramètre c spécifie la longueur de la chaîne.

[in] c

Longueur de la chaîne pointée par lpString.

[out] psizl

Pointeur vers une structure SIZE qui reçoit les dimensions de la chaîne, en unités logiques.

Valeur de retour

Si la fonction réussit, la valeur de retour est différente de zéro.

Si la fonction échoue, la valeur de retour est égale à zéro.

Remarques

La fonction GetTextExtentPoint32 utilise la police actuellement sélectionnée pour calculer les dimensions de la chaîne. La largeur et la hauteur, en unités logiques, sont calculées sans tenir compte d’une coupure.

Étant donné que certains appareils ont des caractères de kern, la somme des étendues des caractères d’une chaîne peut ne pas être égale à l’étendue de la chaîne.

La largeur de chaîne calculée prend en compte l’espacement intercharacteur défini par la fonction SetTextCharacterExtra et la justification définie par SetTextJustification. Cela est vrai pour l’affichage à la fois sur un écran et pour l’impression. Toutefois, si lpDx est défini dans extTextOut, GetTextExtentPoint32 ne prend pas en compte l’espacement ou la justification intercharacter. En outre, pour EMF, le résultat d’impression prend toujours en compte l’intercharacteur et la justification.

Lorsque vous traitez du texte affiché sur un écran, la largeur de chaîne calculée prend en compte l’espacement intercharacteur défini par la fonction SetTextCharacterExtra et la justification définie par SetTextJustification. Toutefois, si lpDx est défini dans extTextOut, GetTextExtentPoint32 ne prend pas en compte l’espacement ou la justification intercharacter. Toutefois, lors de l’impression avec EMF :

  • Le résultat d’impression ignore l’espacement intercharacteur, bien que GetTextExtentPoint32 le prend en compte.
  • Le résultat d’impression prend en compte la justification, même si GetTextExtentPoint32 l’ignore.
Lorsque cette fonction retourne l’étendue du texte, elle suppose que le texte est horizontal, autrement dit, que l’échappement est toujours 0. Cela est vrai pour les mesures horizontales et verticales du texte. Même si vous utilisez une police qui spécifie un échappement différent de zéro, cette fonction n’utilise pas l’angle pendant qu’elle calcule l’étendue du texte. L’application doit la convertir explicitement. Toutefois, lorsque le mode graphique est défini sur GM_ADVANCED et que l’orientation des caractères est de 90 degrés à partir de l’orientation d’impression, les valeurs renvoyées par cette fonction ne suivent pas cette règle. Lorsque l’orientation du caractère et l’orientation d’impression correspondent à une chaîne donnée, cette fonction retourne les dimensions de la chaîne dans la structure SIZE en tant que { cx : 116, cy : 18 }. Lorsque l’orientation du caractère et l’orientation de l’impression sont séparées de 90 degrés pour la même chaîne, cette fonction retourne les dimensions de la chaîne dans la structure SIZE comme { cx : 18, cy : 116 }.

GetTextExtentPoint32 ne considère pas les caractères «\n» (nouvelle ligne) ou «\r\n» (retour chariot et nouvelle ligne) lorsqu’il calcule la hauteur d’une chaîne de texte.

Exemples

Pour obtenir un exemple, consultez dessin de texte à partir de polices différentes sur la même ligne.

Note

L’en-tête wingdi.h définit GetTextExtentPoint32 comme alias qui sélectionne automatiquement la version ANSI ou Unicode de cette fonction en fonction de la définition de la constante de préprocesseur UNICODE. Le mélange de l’utilisation de l’alias neutre en encodage avec du code qui n’est pas neutre en encodage peut entraîner des incompatibilités qui entraînent des erreurs de compilation ou d’exécution. Pour plus d’informations, consultez Conventions pour les prototypes de fonction.

Exigences

Exigence Valeur
client minimum pris en charge Windows 2000 Professionnel [applications de bureau uniquement]
serveur minimum pris en charge Windows 2000 Server [applications de bureau uniquement]
plateforme cible Windows
d’en-tête wingdi.h (include Windows.h)
bibliothèque Gdi32.lib
DLL Gdi32.dll

Voir aussi

ExtTextOut

fonctions de police et de texte

Vue d’ensemble des polices et du texte

SIZE

SetTextCharacterExtra

setTextJustification