Compartir a través de


Función ScriptJustify (usp10.h)

Crea una tabla de anchos avanzados para permitir la justificación de texto cuando se pasa a la función ScriptTextOut .

Sintaxis

HRESULT ScriptJustify(
  [in]  const SCRIPT_VISATTR *psva,
  [in]  const int            *piAdvance,
  [in]  int                  cGlyphs,
  [in]  int                  iDx,
  [in]  int                  iMinKashida,
  [out] int                  *piJustify
);

Parámetros

[in] psva

Puntero a una matriz, de longitud indicada por cGlyphs, que contiene estructuras SCRIPT_VISATTR . Cada estructura contiene atributos visuales de un glifo en la línea que se va a procesar.

[in] piAdvance

Puntero a una matriz de anchos avanzados, de longitud indicada por cGlyphs, obtenido de una llamada anterior a ScriptPlace.

[in] cGlyphs

Recuento de glifos para las matrices indicadas por psva y piAdvance. Este parámetro también indica el recuento de glifos para el parámetro de salida piJustify.

[in] iDx

Ancho, en píxeles, del cambio deseado, ya sea un aumento de la disminución.

[in] iMinKashida

Ancho mínimo de un glifo kashida que se va a generar.

[out] piJustify

Puntero a un búfer en el que esta función recupera una matriz, de longitud indicada por cGlyphs, que contiene anchos de avance justificados. Los anchos justificados a veces se denominan "anchos de celda" para distinguirlos de anchos avanzados no justificados.

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

Vea Mostrar texto con Uniscribe para obtener una explicación del contexto en el que normalmente se llama a esta función.

Esta función proporciona una implementación sencilla de justificación multilingüe. Establece la cantidad de ajuste que se va a realizar en cada posición del glifo en la línea. Interpreta la matriz de SCRIPT_VISATTR generada por una llamada a ScriptShape, lo que da prioridad máxima a kashida. La función usa espaciado entre palabras si no hay puntos kashida disponibles. Usa el espaciado intercharacter si no hay ningún punto entre palabras disponibles.

Nota Los formateadores de texto sofisticados pueden generar su propia matriz delta dx mediante la combinación de características específicas del formateador con la información recuperada por ScriptShape en la matriz SCRIPT_VISATTR .
 
La aplicación debe pasar los anchos anticipados justificados generados por ScriptJustify a ScriptTextOut en el parámetro piJustify .

ScriptJustify crea una matriz justificada que contiene anchos avanzados actualizados para cada glifo. Cuando se aumenta el ancho avanzado de un glifo, el ancho adicional se representa a la derecha del glifo, con un espacio en blanco o, para texto árabe, un kashida.

Nota La inserción de Kashida se produce a la derecha del glifo para justificar visualmente. Microsoft Word y Microsoft PowerPoint usan este concepto. Cualquier cambio en el algoritmo de colocación kashida debe acompañar un cambio en el controlador ScriptTextOut correspondiente para un script determinado, por ejemplo, el controlador de justificación de TextOut árabe.
 
A veces, la aplicación intenta controlar glifos que no se pueden justificar, en cuyo caso el miembro uJustification de SCRIPT_VISATTR se establece en SCRIPT_JUSTIFY_NONE. En este caso, ScriptJustify copia la matriz de entrada indicada por piAdvance en la matriz de salida indicada por piJustify y devuelve S_FALSE a la aplicación.
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

Requisito Value
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

SCRIPT_VISATTR

ScriptPlace

ScriptShape

ScriptTextOut

Uniscribe

Funciones uniscribe