Compartilhar via


Função ScriptPositionSingleGlyph (usp10.h)

Posiciona um único glifo com um único ajuste usando um recurso especificado fornecido na fonte para processamento OpenType. Na maioria das vezes, os aplicativos usam essa função para alinhar um glifo de forma óptica no início ou no final de uma linha.

Sintaxe

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 para o contexto do dispositivo. Para obter mais informações, consulte Cache.

[in, out] psc

Ponteiro para uma estrutura SCRIPT_CACHE que identifica o cache de script.

[in, optional] psa

Ponteiro para uma estrutura SCRIPT_ANALYSIS obtida de uma chamada anterior para ScriptItemizeOpenType. Essa estrutura identifica o mecanismo de formatação para que as larguras avançadas possam ser recuperadas.

Como alternativa, o aplicativo pode definir esse parâmetro como NULL para recuperar resultados não filtrados.

[in] tagScript

Uma estrutura OPENTYPE_TAG definindo a marca de script para formatação.

[in] tagLangSys

Uma estrutura OPENTYPE_TAG definindo a marca de idioma para formatação.

[in] tagFeature

Uma estrutura OPENTYPE_TAG definindo a marca de recurso a ser usada para formatação do glifo alternativo.

[in] lParameter

Um sinalizador que especifica se a substituição única deve ser aplicada ao identificador especificado em wGlyphId. O aplicativo define esse parâmetro como 1 para aplicar o recurso de substituição única ao identificador. O aplicativo define o parâmetro como 0 se a função não deve aplicar o recurso.

[in] wGlyphId

O identificador do glifo original que está sendo moldado.

[in] iAdvance

A largura de avanço do glifo original.

[in] GOffset

O deslocamento de glifo original. Normalmente, esse valor é uma saída de ScriptPlaceOpenType ou ScriptPlace.

[out] piOutAdvance

Ponteiro para o local em que essa função recupera a nova largura avançada ajustada para o glifo alternativo.

[out] pOutGoffset

Ponteiro para o local em que essa função recupera o novo deslocamento de glifo ajustado para o glifo alternativo.

Retornar valor

Retorna 0 se for bem-sucedido. A função retornará um valor HRESULT diferente de zero se não for bem-sucedida. O aplicativo pode testar o valor retornado com as macros SUCCEEDED e FAILED .

Comentários

Essa função posiciona um glifo individual ajustando a largura avançada e/ou o deslocamento do glifo fornecido. A função pressupõe que a fonte requer apenas um ajuste.

Um uso típico dessa função é o pequeno ajuste da margem para considerar a impressão visual feita por determinados caracteres. No script latino, por exemplo, no início de uma linha é comum fazer um pequeno ajuste à esquerda para um capital inicial (como "T" ou "O") que não tem uma linha vertical na parte esquerda do glifo. Embora isso interrompa a margem linear estrita, o olho percebe a margem como mais uniforme.

Os exemplos a seguir demonstram esse efeito. O primeiro exemplo mostra alinhamento estrito; os dois exemplos a seguir mostram um ajuste do "T" inicial à esquerda. Os ajustes são de um pixel e dois pixels, respectivamente. As imagens ampliadas à direita mostram como o "T" empurra um pouco mais para a margem esquerda em cada caso sucessivo.

Ilustração mostrando o mesmo bloco de texto três vezes, com ampliações de cada um mostrando um alinhamento ligeiramente diferente
Importante Começando com Windows 8: para manter a capacidade de execução no Windows 7, um módulo que usa Uniscribe deve especificar Usp10.lib antes de gdi32.lib em sua lista de bibliotecas.
 

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows Vista [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2008 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho usp10.h
Biblioteca Usp10.lib
DLL Usp10.dll
Redistribuível Usp10.dll versão 1.600 ou superior no Windows XP

Confira também

Cache

OPENTYPE_TAG

SCRIPT_ANALYSIS

SCRIPT_CACHE

ScriptItemizeOpenType

Uniscribe

Funções Uniscribe