Compartir a través de


Función GetTextExtentExPointA (wingdi.h)

La función GetTextExtentExPoint recupera el número de caracteres de una cadena especificada que cabe dentro de un espacio especificado y rellena una matriz con la extensión de texto para cada uno de esos caracteres. (Una extensión de texto es la distancia entre el principio del espacio y un carácter que caberá en el espacio). Esta información es útil para los cálculos de ajuste de palabras.

Sintaxis

BOOL GetTextExtentExPointA(
  [in]  HDC    hdc,
  [in]  LPCSTR lpszString,
  [in]  int    cchString,
  [in]  int    nMaxExtent,
  [out] LPINT  lpnFit,
  [out] LPINT  lpnDx,
  [out] LPSIZE lpSize
);

Parámetros

[in] hdc

Identificador del contexto del dispositivo.

[in] lpszString

Puntero a la cadena terminada en null para la que se van a recuperar las extensiones.

[in] cchString

Número de caracteres de la cadena a la que apunta el parámetro lpszStr. Para una llamada ANSI, especifica la longitud de cadena en bytes y para un Unicode especifica la longitud de cadena en WORDs. Tenga en cuenta que para la función ANSI, los caracteres de las páginas de códigos SBCS toman un byte cada uno, mientras que la mayoría de los caracteres de las páginas de códigos DBCS toman dos bytes; para la función Unicode, la mayoría de los caracteres Unicode definidos actualmente (los del plano multilingüe básico (BMP)) son una PALABRA mientras que los suplentes Unicode son dos WORD.

[in] nMaxExtent

Ancho máximo permitido, en unidades lógicas, de la cadena con formato.

[out] lpnFit

Puntero a un entero que recibe un recuento del número máximo de caracteres que caberán en el espacio especificado por el parámetro nMaxExtent. Cuando el parámetro lpnFit de es NULL, se omite el parámetro nMaxExtent.

[out] lpnDx

Puntero a una matriz de enteros que recibe extensiones de cadena parciales. Cada elemento de la matriz proporciona la distancia, en unidades lógicas, entre el principio de la cadena y uno de los caracteres que encajan en el espacio especificado por el parámetro nMaxExtent. Esta matriz debe tener al menos tantos elementos como caracteres especificados por el parámetro cchString porque toda la matriz se usa internamente. La función rellena la matriz con extensiones válidas para tantos caracteres como se especifican en el parámetro lpnFit. Se deben omitir los valores del resto de la matriz. Si alpDx es null, la función no calcula anchos de cadena parciales.

Para scripts complejos, donde una secuencia de caracteres puede representarse mediante cualquier número de glifos, los valores de la matriz alpDx de hasta el número especificado por el parámetro lpnFit coinciden uno a uno con puntos de código. De nuevo, debe omitir el resto de los valores de la matriz alpDx.

[out] lpSize

Puntero a una estructura SIZE que recibe las dimensiones de la cadena, en unidades lógicas. Este parámetro no puede ser NULL.

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

Si los parámetros de lpnFit y alpDx son NULL, llamar a la función getTextExtentExPoint equivale a llamar a la función GetTextExtentPoint.

Para la versión ANSI de GetTextExtentExPoint, la matriz de lpDx tiene el mismo número de valores INT que bytes en lpString. Los valores INT que corresponden a los dos bytes de un carácter DBCS son cada una de las extensiones del carácter compuesto completo.

Tenga en cuenta que los valores de alpDx de GetTextExtentExPoint no son los mismos que los valores de de lpDx para ExtTextOut. Para usar los valores de alpDx en lpDx, primero debe procesarlos.

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

Esta función devuelve la extensión de cada carácter sucesivo de una cadena. Cuando se redondean a unidades lógicas, se obtienen resultados diferentes a los que se devuelven de la GetCharWidth, que devuelve el ancho de cada carácter individual redondeado a unidades lógicas.

Nota

El encabezado wingdi.h define GetTextExtentExPoint 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

funciones de fuente y texto de

de información general de fuentes y texto de

GetTextExtentPoint

SIZE