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 apontada por lpString.

[out] psizl

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

Valor retornado

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

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

Comentários

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 characters, 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 entre caracteres 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 pressupõe que o texto seja 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 têm 90 graus de diferença 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 caracteres "\n" (nova linha) ou "\r\n" (retorno de carro e nova linha) 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.

Observação

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 de pré-processador UNICODE. Misturar o uso do alias neutro de codificação com código que não seja neutro em codificação pode levar a incompatibilidades que resultam em erros de compilação ou de runtime. Para obter mais informações, consulte Convenções para protótipos de função.

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 wingdi.h (inclua Windows.h)
Biblioteca Gdi32.lib
DLL Gdi32.dll

Confira também

Exttextout

Funções de fonte e texto

Visão geral de fontes e texto

SIZE

SetTextCharacterExtra

Settextjustification