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.
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
fonctions de police et de texte