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.
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 |