Fonction ScriptTextOut (usp10.h)
Affiche le texte de la forme de script et des informations de lieu spécifiées.
Syntaxe
HRESULT ScriptTextOut(
[in] const HDC hdc,
[in, out] SCRIPT_CACHE *psc,
[in] int x,
[in] int y,
[in] UINT fuOptions,
[in, optional] const RECT *lprc,
[in] const SCRIPT_ANALYSIS *psa,
[in] const WCHAR *pwcReserved,
[in] int iReserved,
[in] const WORD *pwGlyphs,
[in] int cGlyphs,
[in] const int *piAdvance,
[in, optional] const int *piJustify,
[in] const GOFFSET *pGoffset
);
Paramètres
[in] hdc
Gérez le contexte de l’appareil. Pour plus d’informations, consultez Mise en cache. Notez que, contrairement à d’autres fonctions Uniscribe associées, cette fonction définit le handle comme obligatoire.
[in, out] psc
Pointeur vers une structure SCRIPT_CACHE identifiant le cache de script.
[in] x
Valeur de la coordonnée x du premier glyphe.
[in] y
Valeur de la coordonnée y du premier glyphe.
[in] fuOptions
Options équivalentes au paramètre fuOptionsd’ExtTextOut. Ce paramètre peut être défini sur ETO_CLIPPED ou ETO_OPAQUE, sur les deux valeurs ou sur aucune valeur.
[in, optional] lprc
Pointeur vers une structure RECT contenant le rectangle utilisé pour découper l’affichage. L’application peut définir ce paramètre sur NULL.
[in] psa
Pointeur vers une structure SCRIPT_ANALYSIS obtenue à partir d’un appel précédent à ScriptItemize.
[in] pwcReserved
Réservés au; doit avoir la valeur NULL.
[in] iReserved
Réservés au; doit être 0.
[in] pwGlyphs
Pointeur vers un tableau de glyphes obtenu à partir d’un appel précédent à ScriptShape.
[in] cGlyphs
Nombre de glyphes dans le tableau indiqué par les pwGlyphes. Le nombre maximal de glyphes est de 65 536.
[in] piAdvance
Pointeur vers un tableau de largeurs avancées obtenues à partir d’un appel précédent à ScriptPlace.
[in, optional] piJustify
Pointeur vers un tableau de largeurs avancées justifiées (largeurs de cellule). L’application peut définir ce paramètre sur NULL.
[in] pGoffset
Pointeur vers une structure GOFFSET contenant les décalages x et y du glyphe combiné.
Valeur retournée
Retourne 0 en cas de réussite. La fonction retourne une valeur HRESULT différente de zéro si elle ne réussit pas. L’application peut tester la valeur de retour avec les macros SUCCEEDED et FAILED .
Remarques
Cette fonction appelle la fonction ExtTextOut du système d’exploitation pour l’affichage du texte. Pour plus d’informations, consultez Affichage de texte avec uniscribe.
Tous les tableaux sont dans l’ordre d’affichage, sauf si le membre fLogicalOrder est défini dans la structure SCRIPT_ANALYSIS indiquée par psa.
Pour toute exécution rendue de droite à gauche et générée dans l’ordre logique en forçant le membre fLogicalOrder de SCRIPT_ANALYSIS, l’application doit appeler SetTextAlign (hdc, TA_RIGHT) et donner la coordonnée de droite avant d’appeler ScriptTextOut.
Le tableau indiqué par piJustify fournit des largeurs de cellule pour chaque glyphe. Lorsque la largeur d’un glyphe diffère de la largeur injustifiée spécifiée par piAdvance, l’espace est ajouté ou supprimé de la cellule de glyphe à son bord de fin. Le glyphe est toujours aligné avec le bord d’avant de sa cellule. Cette règle s’applique même dans l’ordre visuel.
Lorsqu’une cellule de glyphe est étendue, l’espace supplémentaire est généralement constitué par l’ajout d’un espace blanc. Toutefois, pour les écritures arabes, l’espace supplémentaire est constitué d’un ou de plusieurs glyphes kashida, sauf si l’espace supplémentaire est insuffisant pour le glyphe kashida le plus court dans la police. La largeur de la plus courte kashida est disponible en appelant ScriptGetFontProperties.
L’application doit passer une valeur pour piJustify uniquement si la chaîne doit être justifiée par ScriptTextOut. Normalement, l’application doit passer null.
L’application ne doit pas utiliser ScriptTextOut pour écrire dans un métafichier, sauf si le métafichier est lu sans substitution de police, par exemple, immédiatement sur le même système pour l’aperçu de page évolutif. ScriptTextOut enregistre les nombres de glyphes dans le métafichier. Étant donné que les nombres de glyphes varient considérablement d’une police à l’autre, il est peu probable que le fichier soit lu correctement lorsque différentes polices sont remplacées. Par exemple, lorsqu’un métafichier est lu à une échelle différente, une requête CreateFont enregistrée dans le métafichier peut être résolue en bitmap au lieu d’une police TrueType. De même, si le métafichier est lu sur un autre ordinateur, les polices demandées peuvent ne pas être installées. Pour écrire des scripts complexes dans un métafichier indépendamment de la police, l’application doit utiliser ExtTextOut pour écrire directement les caractères logiques, afin que la génération et le placement des glyphes ne se produisent pas tant que le texte n’est pas lu.
Configuration requise
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 | usp10.h |
Bibliothèque | Usp10.lib |
DLL | Usp10.dll |
Composant redistribuable | Internet Explorer 5 ou version ultérieure sur Windows Me/98/95 |