Compartir a través de


Función GetTextExtentPoint32A (wingdi.h)

La función GetTextExtentPoint32 calcula el ancho y el 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, ya que el parámetro c especifica la longitud de la cadena.

[in] c

Longitud de la cadena a la que apuntalpString.

[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 ejecuta correctamente, el valor devuelto es distinto de cero.

Si se produce un error en la función, el valor devuelto es cero.

Observaciones

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

Dado que algunos dispositivos 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 espaciado intercharacter 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 espaciado o la justificación intercharacter. Además, para EMF, el resultado de impresión siempre tiene en cuenta tanto el espaciado intercharacter como la justificación.

Cuando se trabaja con texto mostrado 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 espaciado o la justificación intercharacter. Sin embargo, al imprimir con EMF:

  • El resultado de impresión omite el espaciado intercharacter, aunque GetTextExtentPoint32 tenga 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, se supone que el texto es horizontal, es decir, que el escape siempre es 0. Esto es cierto para las medidas horizontales y 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 del carácter y la orientación de impresión coinciden con una cadena determinada, esta función devuelve las dimensiones de la cadena de la SIZE estructura 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 "\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 dibujo de texto de fuentes diferentes 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 Conventions for Function Prototypes.

Requisitos

Requisito Valor
cliente mínimo admitido Windows 2000 Professional [solo aplicaciones de escritorio]
servidor mínimo admitido Windows 2000 Server [solo aplicaciones de escritorio]
de la plataforma de destino de Windows
encabezado de wingdi.h (incluya Windows.h)
biblioteca de Gdi32.lib
DLL de Gdi32.dll

Consulte también

extTextOut

funciones de fuente y texto de

de información general de fuentes y texto de

SIZE

SetTextCharacterExtra

SetTextJustification