Partager via


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.

Important À compter de Windows 8 : pour conserver la possibilité de s’exécuter sur Windows 7, un module qui utilise Uniscribe doit spécifier Usp10.lib avant gdi32.lib dans sa liste de bibliothèques.
 

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

Voir aussi

Affichage du texte avec un caractères non inscrit

GOFFSET

SCRIPT_ANALYSIS

SCRIPT_CACHE

ScriptGetFontProperties

ScriptItemize

ScriptPlace

ScriptShape

Annuler l’inscription

Annuler l’inscription de fonctions