Share via


Função ScriptTextOut (usp10.h)

Exibe texto para a forma de script especificada e informações de local.

Sintaxe

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
);

Parâmetros

[in] hdc

Identificador para o contexto do dispositivo. Para obter mais informações, consulte Cache. Observe que, ao contrário de algumas outras funções Uniscribe relacionadas, essa função define o identificador como obrigatório.

[in, out] psc

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

[in] x

Valor da coordenada x do primeiro glifo.

[in] y

Valor da coordenada y do primeiro glifo.

[in] fuOptions

Opções equivalentes ao parâmetro fuOptions de ExtTextOut. Esse parâmetro pode ser definido como ETO_CLIPPED ou ETO_OPAQUE, para ambos os valores ou para nenhum dos valores.

[in, optional] lprc

Ponteiro para uma estrutura RECT que contém o retângulo usado para recortar a exibição. O aplicativo pode definir esse parâmetro como NULL.

[in] psa

Ponteiro para uma estrutura SCRIPT_ANALYSIS obtida de uma chamada anterior para ScriptItemize.

[in] pwcReserved

Reservados; deve ser definido como NULL.

[in] iReserved

Reservados; deve ser 0.

[in] pwGlyphs

Ponteiro para uma matriz de glifos obtidos de uma chamada anterior para ScriptShape.

[in] cGlyphs

Contagem dos glifos na matriz indicada por pwGlyphs. O número máximo de glifos é 65.536.

[in] piAdvance

Ponteiro para uma matriz de larguras avançadas obtidas de uma chamada anterior para ScriptPlace.

[in, optional] piJustify

Ponteiro para uma matriz de larguras avançadas justificadas (larguras de célula). O aplicativo pode definir esse parâmetro como NULL.

[in] pGoffset

Ponteiro para uma estrutura GOFFSET que contém os deslocamentos x e y para o glifo de combinação.

Valor retornado

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 chama a função ExtTextOut do sistema operacional para exibição de texto. Para obter mais informações, consulte Exibindo texto com Uniscribe.

Todas as matrizes estão em ordem de exibição, a menos que o membro fLogicalOrder seja definido na estrutura SCRIPT_ANALYSIS indicada pelo psa.

Para qualquer execução renderizada da direita para a esquerda e gerada em ordem lógica forçando o membro fLogicalOrder do SCRIPT_ANALYSIS, o aplicativo deve chamar SetTextAlign (hdc, TA_RIGHT) e fornecer a coordenada do lado direito antes de chamar ScriptTextOut.

A matriz indicada por piJustify fornece larguras de célula para cada glifo. Quando a largura de um glifo difere da largura injustificada, especificada por piAdvance, o espaço é adicionado ou removido da célula do glifo em sua borda à direita. O glifo é sempre alinhado com a borda superior de sua célula. Essa regra se aplica até mesmo na ordem visual.

Quando uma célula de glifo é estendida, o espaço extra geralmente é composto pela adição de espaço em branco. No entanto, para scripts árabes, o espaço extra é composto por um ou mais glifos kashida, a menos que o espaço extra seja insuficiente para o glifo kashida mais curto na fonte. A largura do kashida mais curto está disponível chamando ScriptGetFontProperties.

O aplicativo deve passar um valor para piJustify somente se a cadeia de caracteres precisar ser justificada por ScriptTextOut. Normalmente, o aplicativo deve passar NULL.

O aplicativo não deve usar ScriptTextOut para gravar em um metarquivo, a menos que o metarquivo seja reproduzido sem nenhuma substituição de fonte, por exemplo, imediatamente no mesmo sistema para visualização de página escalonável. ScriptTextOut registra números de glifo no metarquivo. Como os números de glifo variam consideravelmente de uma fonte para outra, é improvável que o arquivo reproduza corretamente quando fontes diferentes são substituídas. Por exemplo, quando um meta-arquivo é reproduzido em uma escala diferente, uma solicitação CreateFont registrada no metarquivo pode resolve a um bitmap em vez de uma fonte TrueType. Da mesma forma, se o metarquivo for reproduzido em um computador diferente, as fontes solicitadas poderão não ser instaladas. Para escrever scripts complexos em um metarquivo de maneira independente de fonte, o aplicativo deve usar ExtTextOut para gravar os caracteres lógicos diretamente, para que a geração e o posicionamento do glifo não ocorram até que o texto seja reproduzido.

Importante A partir do 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

   
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

GOFFSET

SCRIPT_ANALYSIS

SCRIPT_CACHE

ScriptGetFontProperties

Scriptitemize

Scriptplace

Scriptshape

Uniscribe

Funções Uniscribe