Función ScriptTextOut (usp10.h)
Muestra el texto de la forma de script y la información de posición especificadas.
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
);
[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.
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 .
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.
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 |