Función ScriptTextOut (usp10.h)

Muestra el texto de la forma de script y la información de posición especificadas.

Sintaxis

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
);

Parámetros

[in] hdc

Identificador del contexto del dispositivo. Para más información, consulte Almacenamiento en caché. Tenga en cuenta que, a diferencia de otras funciones uniscribe relacionadas, esta función define el identificador como obligatorio.

[in, out] psc

Puntero a una estructura de SCRIPT_CACHE que identifica la caché de scripts.

[in] x

Valor de la coordenada x del primer glifo.

[in] y

Valor de la coordenada y del primer glifo.

[in] fuOptions

Opciones equivalentes al parámetro fuOptions de ExtTextOut. Este parámetro se puede establecer en ETO_CLIPPED o ETO_OPAQUE, en ambos valores o en ninguno de ellos.

[in, optional] lprc

Puntero a una estructura RECT que contiene el rectángulo usado para recortar la pantalla. La aplicación puede establecer este parámetro en NULL.

[in] psa

Puntero a una estructura de SCRIPT_ANALYSIS obtenida de una llamada anterior a ScriptItemize.

[in] pwcReserved

Reservados; debe establecerse en NULL.

[in] iReserved

Reservados; debe ser 0.

[in] pwGlyphs

Puntero a una matriz de glifos obtenidos de una llamada anterior a ScriptShape.

[in] cGlyphs

Recuento de glifos en la matriz indicado por pwGlyphs. El número máximo de glifos es de 65 536.

[in] piAdvance

Puntero a una matriz de anchos avanzados obtenidos de una llamada anterior a ScriptPlace.

[in, optional] piJustify

Puntero a una matriz de anchos de avance justificados (anchos de celda). La aplicación puede establecer este parámetro en NULL.

[in] pGoffset

Puntero a una estructura GOFFSET que contiene los desplazamientos x e y para el glifo combinado.

Valor devuelto

Si la operación se realiza correctamente, devuelve 0. La función devuelve un valor HRESULT distinto de cero si no se realiza correctamente. La aplicación puede probar el valor devuelto con las macros SUCCEEDED y FAILED .

Comentarios

Esta función llama a la función ExtTextOut del sistema operativo para mostrar texto. Para obtener más información, vea Mostrar texto con Uniscribe.

Todas las matrices están en orden de presentación a menos que el miembro fLogicalOrder esté establecido en la estructura SCRIPT_ANALYSIS indicada por psa.

Para cualquier ejecución que se represente de derecha a izquierda y se generó en orden lógico al forzar el miembro fLogicalOrder de SCRIPT_ANALYSIS, la aplicación debe llamar a SetTextAlign (hdc, TA_RIGHT) y proporcionar la coordenada del lado derecho antes de llamar a ScriptTextOut.

La matriz indicada por piJustify proporciona anchos de celda para cada glifo. Cuando el ancho de un glifo difiere del ancho no justificado, especificado por piAdvance, el espacio se agrega o quita de la celda del glifo en su borde final. El glifo siempre está alineado con el borde inicial de su celda. Esta regla se aplica incluso en orden visual.

Cuando se extiende una celda de glifo, el espacio adicional se compone normalmente por la adición de espacio en blanco. Sin embargo, para los scripts árabes, el espacio adicional se compone de uno o más glifos kashida, a menos que el espacio adicional no sea suficiente para el glifo kashida más corto en la fuente. El ancho del kashida más corto está disponible llamando a ScriptGetFontProperties.

La aplicación debe pasar un valor para piJustify solo si la cadena debe estar justificada por ScriptTextOut. Normalmente, la aplicación debe pasar NULL.

La aplicación no debe usar ScriptTextOut para escribir en un metarchivo a menos que el metarchivo se reproduzca sin ninguna sustitución de fuentes, por ejemplo, inmediatamente en el mismo sistema para la vista previa de página escalable. ScriptTextOut registra números de glifo en el metarchivo. Dado que los números de glifo varían considerablemente de una fuente a otra, es poco probable que el archivo se reproduzca correctamente cuando se sustituyen las diferentes fuentes. Por ejemplo, cuando se reproduce un metarchivo a otra escala, una solicitud CreateFont registrada en el metarchivo puede resolverse en un mapa de bits en lugar de en una fuente TrueType. Del mismo modo, si el metarchivo se reproduce en otro equipo, es posible que las fuentes solicitadas no se instalen. Para escribir scripts complejos en un metarchivo de forma independiente de fuente, la aplicación debe usar ExtTextOut para escribir los caracteres lógicos directamente, de modo que la generación y la colocación del glifo no se produzcan hasta que se vuelva a reproducir el texto.

Importante A partir de Windows 8: para mantener la capacidad de ejecutarse en Windows 7, un módulo que usa Uniscribe debe especificar Usp10.lib antes de gdi32.lib en su lista de bibliotecas.
 

Requisitos

   
Cliente mínimo compatible Windows 2000 Professional [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows 2000 Server [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado usp10.h
Library Usp10.lib
Archivo DLL Usp10.dll
Redistribuible Internet Explorer 5 o posterior en Windows Me/98/95

Consulte también

Mostrar texto con Uniscribe

GOFFSET

SCRIPT_ANALYSIS

SCRIPT_CACHE

ScriptGetFontProperties

ScriptItemize

ScriptPlace

ScriptShape

Uniscribe

Funciones de uniscribe