Compartilhar via


Função ScriptJustify (usp10.h)

Cria uma tabela de larguras avançadas para permitir a justificativa de texto quando passada para a função ScriptTextOut .

Sintaxe

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

Ponteiro para uma matriz, de comprimento indicado por cGlyphs, contendo estruturas SCRIPT_VISATTR . Cada estrutura contém atributos visuais para um glifo na linha a ser processada.

[in] piAdvance

Ponteiro para uma matriz de larguras avançadas, de comprimento indicado por cGlyphs, obtido de uma chamada anterior para ScriptPlace.

[in] cGlyphs

Contagem de glifos para as matrizes indicadas por psva e piAdvance. Esse parâmetro também indica a contagem de glifos para o parâmetro de saída piJustify.

[in] iDx

Largura, em pixels, da alteração desejada, ou um aumento de diminuição.

[in] iMinKashida

Largura mínima de um glifo kashida a ser gerado.

[out] piJustify

Ponteiro para um buffer no qual essa função recupera uma matriz, de comprimento indicada por cGlyphs, contendo larguras avançadas justificadas. Às vezes, as larguras justificadas são chamadas de "larguras de célula" para distingui-las de larguras de avanço injustificadas.

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

Consulte Exibindo texto com Uniscribe para obter uma discussão sobre o contexto no qual essa função normalmente é chamada.

Essa função fornece uma implementação simples de justificativa multilíngue. Ele estabelece a quantidade de ajuste a fazer em cada posição de glifo na linha. Ele interpreta a matriz de SCRIPT_VISATTR gerada por uma chamada para ScriptShape, dando prioridade máxima a kashida. A função usará espaçamento entre palavras se nenhum ponto kashida estiver disponível. Ele usará o espaçamento entre caracteres se nenhum ponto de inter palavra estiver disponível.

Nota Formatadores de texto sofisticados podem gerar sua própria matriz dx delta combinando recursos específicos do formatador com as informações recuperadas pelo ScriptShape na matriz de SCRIPT_VISATTR .
 
O aplicativo deve passar as larguras avançadas justificadas geradas por ScriptJustify para ScriptTextOut no parâmetro piJustify .

ScriptJustify cria uma matriz justificada que contém larguras avançadas atualizadas para cada glifo. Quando uma largura avançada para um glifo é aumentada, a largura extra é renderizada à direita do glifo, com um espaço em branco ou, para texto árabe, uma kashida.

Nota A inserção de Kashida ocorre à direita do glifo para justificar visualmente. O Microsoft Word e o Microsoft PowerPoint usam esse conceito. Qualquer alteração no algoritmo de posicionamento kashida deve acompanhar uma alteração no manipulador ScriptTextOut correspondente para um script específico, por exemplo, o manipulador de justificativa textout árabe.
 
Às vezes, o aplicativo tenta lidar com glifos que não podem ser justificados; nesse caso, o membro uJustification de SCRIPT_VISATTR é definido como SCRIPT_JUSTIFY_NONE. Nesse caso, ScriptJustify copia a matriz de entrada indicada por piAdvance para a matriz de saída indicada por piJustify e retorna S_FALSE para o aplicativo.
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 2000 Professional [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows 2000 Server [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho usp10.h
Biblioteca Usp10.lib
DLL Usp10.dll
Redistribuível Internet Explorer 5 ou posterior no Windows Me/98/95

Confira também

Exibindo texto com Uniscribe

SCRIPT_VISATTR

Scriptplace

Scriptshape

Scripttextout

Uniscribe

Funções Uniscribe