Función GetTextExtentExPointW (wingdi.h)

La función GetTextExtentExPoint recupera el número de caracteres de una cadena especificada que caberá en 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 GetTextExtentExPointW(
  [in]  HDC     hdc,
  [in]  LPCWSTR 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 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 caben 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 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 realiza correctamente, el valor devuelto es distinto de cero.

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

Comentarios

Si los parámetros 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 lpDx tiene el mismo número de valores INT que hay 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 alpDx de GetTextExtentExPoint no son los mismos que los valores 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 convertirla explícitamente. Sin embargo, cuando el modo gráfico se establece en GM_ADVANCED y la orientación de caracteres 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 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 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 neutro de codificación con código que no es neutral de codificación puede provocar discrepancias que dan lugar a errores de compilación o en 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

Funciones de fuente y texto

Información general sobre fuentes y texto

GetTextExtentPoint

SIZE