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á 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 cabe 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.
En el caso de 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 alpDx en lpDx, primero debe procesarlos.
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 }.
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 de 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 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 |