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 pour 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 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 entre les caractères définis par la fonction SetTextCharacterExtra et la justification définie par SetTextJustification. Cela s’applique à la fois à l’affichage sur un écran et à l’impression. Toutefois, si lpDx est défini dans ExtTextOut, GetTextExtentPoint32 ne prend pas en compte l’espacement entre les caractères ou la justification. En outre, pour EMF, le résultat d’impression prend toujours en compte l’espacement entre les caractères et la justification.
Lorsque vous traitez le 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 entre les caractères ou la justification. Toutefois, lors de l’impression avec EMF :
- Le résultat d’impression ignore l’espacement entre les caractères, 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 polices différentes sur la même ligne.
Notes
L’en-tête wingdi.h définit GetTextExtentPoint32 en tant qu’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. La combinaison 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 |
Voir aussi
Fonctions de police et de texte