Share via


Función ScriptPositionSingleGlyph (usp10.h)

Coloca un único glifo con un único ajuste mediante una característica especificada proporcionada en la fuente para el procesamiento de OpenType. Normalmente, las aplicaciones usan esta función para alinear un glifo ópticamente al principio o al final de una línea.

Sintaxis

HRESULT ScriptPositionSingleGlyph(
  [in, optional] HDC             hdc,
  [in, out]      SCRIPT_CACHE    *psc,
  [in, optional] SCRIPT_ANALYSIS *psa,
  [in]           OPENTYPE_TAG    tagScript,
  [in]           OPENTYPE_TAG    tagLangSys,
  [in]           OPENTYPE_TAG    tagFeature,
  [in]           LONG            lParameter,
  [in]           WORD            wGlyphId,
  [in]           int             iAdvance,
  [in]           GOFFSET         GOffset,
  [out]          int             *piOutAdvance,
  [out]          GOFFSET         *pOutGoffset
);

Parámetros

[in, optional] hdc

Identificador del contexto del dispositivo. Para más información, consulte Almacenamiento en caché.

[in, out] psc

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

[in, optional] psa

Puntero a una estructura de SCRIPT_ANALYSIS obtenida de una llamada anterior a ScriptItemizeOpenType. Esta estructura identifica el motor de forma, de modo que se puedan recuperar los anchos avanzados.

Como alternativa, la aplicación puede establecer este parámetro en NULL para recuperar resultados sin filtrar.

[in] tagScript

Estructura OPENTYPE_TAG que define la etiqueta de script para dar forma.

[in] tagLangSys

Estructura OPENTYPE_TAG que define la etiqueta de lenguaje para dar forma.

[in] tagFeature

Estructura OPENTYPE_TAG que define la etiqueta de característica que se va a usar para dar forma al glifo alternativo.

[in] lParameter

Marca que especifica si se debe aplicar una sustitución única al identificador especificado en wGlyphId. La aplicación establece este parámetro en 1 para aplicar la característica de sustitución única al identificador. La aplicación establece el parámetro en 0 si la función no debe aplicar la característica.

[in] wGlyphId

Identificador del glifo original al que se va a dar forma.

[in] iAdvance

Ancho de avance del glifo original.

[in] GOffset

Desplazamiento original del glifo. Normalmente, este valor es una salida de ScriptPlaceOpenType o ScriptPlace.

[out] piOutAdvance

Puntero a la ubicación en la que esta función recupera el nuevo ancho avanzado ajustado para el glifo alternativo.

[out] pOutGoffset

Puntero a la ubicación en la que esta función recupera el nuevo desplazamiento del glifo ajustado para el glifo alternativo.

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 coloca un glifo individual ajustando el ancho avanzado o el desplazamiento del glifo especificado. La función supone que la fuente solo requiere un ajuste.

Un uso típico de esta función es el ligero ajuste del margen para tener en cuenta la impresión visual realizada por determinados caracteres. En el alfabeto latino, por ejemplo, al principio de una línea es habitual realizar un ligero ajuste a la izquierda para un capital inicial (como "T" o "O") que no tiene una línea vertical en la parte izquierda del glifo. Aunque al hacer esto se rompe el margen lineal estricto, el ojo percibe el margen como más uniforme.

En los ejemplos siguientes se muestra este efecto. En el primer ejemplo se muestra la alineación estricta; Los dos ejemplos siguientes muestran un ajuste de la "T" inicial a la izquierda. Los ajustes son por un píxel y dos píxeles, respectivamente. Las imágenes ampliadas a la derecha muestran cómo la "T" empuja ligeramente más lejos en el margen izquierdo en cada caso sucesivo.

Ilustración que muestra el mismo bloque de texto tres veces, con ampliaciones de cada una que muestra una alineación ligeramente diferente
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 Vista [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2008 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado usp10.h
Library Usp10.lib
Archivo DLL Usp10.dll
Redistribuible Usp10.dll versión 1.600 o posterior en Windows XP

Consulte también

Almacenamiento en caché

OPENTYPE_TAG

SCRIPT_ANALYSIS

SCRIPT_CACHE

ScriptItemizeOpenType

Uniscribe

Funciones de uniscribe