GetTextExtentPoint32A, fonction (wingdi.h)
La fonction GetTextExtentPoint32 calcule la largeur et la hauteur de la chaîne de texte spécifiée.
Syntaxe
BOOL GetTextExtentPoint32A(
[in] HDC hdc,
[in] LPCSTR lpString,
[in] int c,
[out] LPSIZE psizl
);
Paramètres
[in] hdc
Handle dans 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 vers lpString.
[out] psizl
Pointeur vers une structure SIZE qui reçoit les dimensions de la chaîne, en unités logiques.
Valeur retournée
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 de la coupe.
Étant donné que certains appareils kern caractères, 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 intercharacter défini par la fonction SetTextCharacterExtra et la justification définie par SetTextJustification. Cela est vrai à la fois pour l’affichage sur un écran et pour l’impression. Toutefois, si lpDx est défini dans ExtTextOut, GetTextExtentPoint32 ne prend pas en compte l’espacement intercharactaire ni la justification. En outre, pour EMF, le résultat d’impression prend toujours en compte l’espacement intercharactaire et la justification.
Lorsque vous traitez le texte affiché sur un écran, la largeur de chaîne calculée prend en compte l’espacement intercharacter 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 intercharactaire ni la justification. Toutefois, lors de l’impression avec EMF :
- Le résultat d’impression ignore l’espacement intercharacter, bien que GetTextExtentPoint32 le prenne en compte.
- Le résultat d’impression prend en compte la justification, bien que GetTextExtentPoint32 l’ignore .
GetTextExtentPoint32 ne prend pas en compte 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 différentes polices sur la même ligne.
Notes
L’en-tête wingdi.h définit GetTextExtentPoint32 comme un 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.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows 2000 Professionnel [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows 2000 Server [applications de bureau uniquement] |
Plateforme cible | Windows |
En-tête | wingdi.h (inclure Windows.h) |
Bibliothèque | Gdi32.lib |
DLL | Gdi32.dll |