Compartilhar via


Função GetTextExtentPoint32A (wingdi.h)

A função GetTextExtentPoint32 calcula a largura e a altura da cadeia de caracteres de texto especificada.

Sintaxe

BOOL GetTextExtentPoint32A(
  [in]  HDC    hdc,
  [in]  LPCSTR lpString,
  [in]  int    c,
  [out] LPSIZE psizl
);

Parâmetros

[in] hdc

Um identificador para o contexto do dispositivo.

[in] lpString

Um ponteiro para um buffer que especifica a cadeia de caracteres de texto. A cadeia de caracteres não precisa ser terminada em nulo, pois o parâmetro c especifica o comprimento da cadeia de caracteres.

[in] c

O comprimento da cadeia de caracteres apontado por lpString.

[out] psizl

Um ponteiro para uma estrutura SIZE que recebe as dimensões da cadeia de caracteres, em unidades lógicas.

Valor de retorno

Se a função for bem-sucedida, o valor retornado não será zero.

Se a função falhar, o valor retornado será zero.

Observações

A função GetTextExtentPoint32 usa a fonte selecionada no momento para calcular as dimensões da cadeia de caracteres. A largura e a altura, em unidades lógicas, são computadas sem considerar nenhum recorte.

Como alguns dispositivos kern caracteres, a soma das extensões dos caracteres em uma cadeia de caracteres pode não ser igual à extensão da cadeia de caracteres.

A largura da cadeia de caracteres calculada leva em conta o espaçamento de intercaracter definido pela função SetTextCharacterExtra e a justificativa definida por SetTextJustification. Isso é verdadeiro para exibição em uma tela e para impressão. No entanto, se lpDx for definido em ExtTextOut, GetTextExtentPoint32 não levará em conta o espaçamento ou a justificativa do intercaracter. Além disso, para o EMF, o resultado da impressão sempre leva em conta o espaçamento entre caracteres e a justificativa.

Ao lidar com o texto exibido em uma tela, a largura da cadeia de caracteres calculada leva em conta o espaçamento entre caracteres definido pela função SetTextCharacterExtra e a justificativa definida por SetTextJustification. No entanto, se lpDx for definido em ExtTextOut, GetTextExtentPoint32 não levará em conta o espaçamento ou a justificativa do intercaracter. No entanto, ao imprimir com o EMF:

  • O resultado da impressão ignora o espaçamento entre caracteres, embora GetTextExtentPoint32 o leve em conta.
  • O resultado da impressão leva em conta a justificativa, embora GetTextExtentPoint32 a ignore.
Quando essa função retorna a extensão de texto, ela assume que o texto é horizontal, ou seja, que o escape é sempre 0. Isso é verdadeiro para as medidas horizontais e verticais do texto. Mesmo que você use uma fonte que especifica um escape diferente de zero, essa função não usa o ângulo enquanto calcula a extensão de texto. O aplicativo deve convertê-lo explicitamente. No entanto, quando o modo gráfico é definido como GM_ADVANCED e a orientação do caractere está a 90 graus da orientação de impressão, os valores retornados por essa função não seguem essa regra. Quando a orientação do caractere e a orientação de impressão correspondem a uma determinada cadeia de caracteres, essa função retorna as dimensões da cadeia de caracteres na estrutura SIZE como { cx: 116, cy: 18 }. Quando a orientação do caractere e a orientação de impressão estão a 90 graus de distância para a mesma cadeia de caracteres, essa função retorna as dimensões da cadeia de caracteres na estrutura SIZE como { cx: 18, cy: 116 }.

GetTextExtentPoint32 não considera "\n" (nova linha) ou "\r\n" (retorno de carro e nova linha) caracteres quando calcula a altura de uma cadeia de caracteres de texto.

Exemplos

Para obter um exemplo, consulte desenho de texto de fontes diferentes na mesma linha.

Nota

O cabeçalho wingdi.h define GetTextExtentPoint32 como um alias que seleciona automaticamente a versão ANSI ou Unicode dessa função com base na definição da constante do pré-processador UNICODE. A combinação do uso do alias neutro de codificação com código que não é neutro em codificação pode levar a incompatibilidades que resultam em erros de compilação ou de runtime. Para obter mais informações, consulte Conventions for Function Prototypes.

Requisitos

Requisito Valor
de cliente com suporte mínimo Windows 2000 Professional [somente aplicativos da área de trabalho]
servidor com suporte mínimo Windows 2000 Server [somente aplicativos da área de trabalho]
da Plataforma de Destino Windows
cabeçalho wingdi.h (inclua Windows.h)
biblioteca Gdi32.lib
de DLL Gdi32.dll

Consulte também

ExtTextOut

Funções de fonte e texto

fontes e visão geral de texto

tamanho do

SetTextCharacterExtra

SetTextJustification