Función GetTextExtentPoint32A (wingdi.h)

La función GetTextExtentPoint32 calcula el ancho y alto de la cadena de texto especificada.

Sintaxis

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

Parámetros

[in] hdc

Identificador del contexto del dispositivo.

[in] lpString

Puntero a un búfer que especifica la cadena de texto. No es necesario que la cadena termine en null, porque el parámetro c especifica la longitud de la cadena.

[in] c

Longitud de la cadena a la que apunta lpString.

[out] psizl

Puntero a una estructura SIZE que recibe las dimensiones de la cadena, en unidades lógicas.

Valor devuelto

Si la función se realiza correctamente, el valor devuelto es distinto de cero.

Si la función no se realiza correctamente, el valor devuelto es cero.

Comentarios

La función GetTextExtentPoint32 usa la fuente seleccionada actualmente para calcular las dimensiones de la cadena. El ancho y alto, en unidades lógicas, se calculan sin tener en cuenta ningún recorte.

Dado que algunos dispositivos de kern caracteres, es posible que la suma de las extensiones de los caracteres de una cadena no sea igual a la extensión de la cadena.

El ancho de cadena calculado tiene en cuenta el intercalado establecido por la función SetTextCharacterExtra y la justificación establecida por SetTextJustification. Esto es cierto tanto para mostrar en una pantalla como para imprimir. Sin embargo, si lpDx se establece en ExtTextOut, GetTextExtentPoint32 no tiene en cuenta el intercalado ni la justificación. Además, para EMF, el resultado de impresión siempre tiene en cuenta tanto el espaciado intercharacter como la justificación.

Al tratar con el texto que se muestra en una pantalla, el ancho de cadena calculado tiene en cuenta el espaciado intercharacter establecido por la función SetTextCharacterExtra y la justificación establecida por SetTextJustification. Sin embargo, si lpDx se establece en ExtTextOut, GetTextExtentPoint32 no tiene en cuenta el intercalado ni la justificación. Sin embargo, al imprimir con EMF:

  • El resultado de impresión omite el espaciado intercharacter, aunque GetTextExtentPoint32 lo tiene en cuenta.
  • El resultado de impresión tiene en cuenta la justificación, aunque GetTextExtentPoint32 lo omite.
Cuando esta función devuelve la extensión de texto, supone que el texto es horizontal, es decir, que el escape siempre es 0. Esto es cierto tanto para las medidas horizontales como verticales del texto. Incluso si usa una fuente que especifica un escape distinto de cero, esta función no usa el ángulo mientras calcula la extensión de texto. La aplicación debe convertirlo explícitamente. Sin embargo, cuando el modo gráfico se establece en GM_ADVANCED y la orientación del carácter es de 90 grados a partir de la orientación de impresión, los valores devueltos por esta función no siguen esta regla. Cuando la orientación de caracteres y la orientación de impresión coinciden con una cadena determinada, esta función devuelve las dimensiones de la cadena en la estructura SIZE como { cx : 116, cy : 18 }. Cuando la orientación de caracteres y la orientación de impresión están separadas por 90 grados para la misma cadena, esta función devuelve las dimensiones de la cadena en la estructura SIZE como { cx : 18, cy : 116 }.

GetTextExtentPoint32 no tiene en cuenta los caracteres "\n" (nueva línea) o "\r\n" (retorno de carro y nueva línea) cuando calcula el alto de una cadena de texto.

Ejemplos

Para obtener un ejemplo, vea Dibujar texto de diferentes fuentes en la misma línea.

Nota

El encabezado wingdi.h define GetTextExtentPoint32 como alias que selecciona automáticamente la versión ANSI o Unicode de esta función en función de la definición de la constante de preprocesador UNICODE. La combinación del uso del alias neutral de codificación con código que no es neutral de codificación puede dar lugar a errores de coincidencia que dan lugar a errores de compilación o tiempo de ejecución. Para obtener más información, vea Convenciones para prototipos de función.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 2000 Professional [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows 2000 Server [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado wingdi.h (incluye Windows.h)
Library Gdi32.lib
Archivo DLL Gdi32.dll

Consulte también

ExtTextOut

Funciones de fuente y texto

Información general sobre fuentes y texto

SIZE

SetTextCharacterExtra

SetTextJustification