Compartir a través de


Función DrawTextExA (winuser.h)

La función DrawTextEx dibuja texto con formato en el rectángulo especificado.

Sintaxis

int DrawTextExA(
  [in]      HDC              hdc,
  [in, out] LPSTR            lpchText,
  [in]      int              cchText,
  [in, out] LPRECT           lprc,
  [in]      UINT             format,
  [in]      LPDRAWTEXTPARAMS lpdtp
);

Parámetros

[in] hdc

Identificador del contexto del dispositivo en el que se va a dibujar.

[in, out] lpchText

Puntero a la cadena que contiene el texto que se va a dibujar. Si el parámetro cchText es -1, la cadena debe terminar en null.

Si dwDTFormat incluye DT_MODIFYSTRING, la función podría agregar hasta cuatro caracteres adicionales a esta cadena. El búfer que contiene la cadena debe ser lo suficientemente grande como para acomodar estos caracteres adicionales.

[in] cchText

Longitud de la cadena a la que apunta lpchText. Si cchText es -1, se supone que el parámetro lpchText es un puntero a una cadena terminada en null y DrawTextEx calcula automáticamente el recuento de caracteres.

[in, out] lprc

Puntero a una estructura RECT que contiene el rectángulo, en coordenadas lógicas, en las que se va a dar formato al texto.

[in] format

Las opciones de formato. Este parámetro puede ser uno o varios de los siguientes valores.

Valor Significado
DT_BOTTOM
Justifica el texto en la parte inferior del rectángulo. Este valor solo se usa con el valor de DT_SINGLELINE.
DT_CALCRECT
Determina el ancho y el alto del rectángulo. Si hay varias líneas de texto, DrawTextEx usa el ancho del rectángulo al que apunta el parámetro lprc y extiende la base del rectángulo para enlazar la última línea de texto. Si solo hay una línea de texto, DrawTextEx modifica el lado derecho del rectángulo para que delimite el último carácter de la línea. En cualquier caso, DrawTextEx devuelve el alto del texto con formato, pero no dibuja el texto.
DT_CENTER
Centra el texto horizontalmente en el rectángulo.
DT_EDITCONTROL
Duplica las características que muestran texto de un control de edición de varias líneas. En concreto, el ancho medio de caracteres se calcula de la misma manera que para un control de edición y la función no muestra una última línea parcialmente visible.
DT_END_ELLIPSIS
Para el texto mostrado, reemplaza el final de una cadena por puntos suspensivos para que el resultado se ajuste al rectángulo especificado. Cualquier palabra (no al final de la cadena) que supere los límites del rectángulo se trunca sin puntos suspensivos. La cadena no se modifica a menos que se especifique la marca DT_MODIFYSTRING.

Compare con DT_PATH_ELLIPSIS y DT_WORD_ELLIPSIS.

DT_EXPANDTABS
Expande los caracteres de tabulación. El número predeterminado de caracteres por pestaña es ocho.
DT_EXTERNALLEADING
Incluye la fuente externa inicial en alto de línea. Normalmente, el inicial externo no se incluye en el alto de una línea de texto.
DT_HIDEPREFIX
Omite el carácter de prefijo (&) en el texto. La letra siguiente no se subrayará, pero se siguen procesando otros caracteres de prefijo mnemónico.

Ejemplo:

cadena de entrada: "A&bc&&d"

normal: "Abc&d"

DT_HIDEPREFIX: "Abc&d"

Compare con DT_NOPREFIX y DT_PREFIXONLY.

DT_INTERNAL
Usa la fuente del sistema para calcular las métricas de texto.
DT_LEFT
Alinea el texto a la izquierda.
DT_MODIFYSTRING
Modifica la cadena especificada para que coincida con el texto mostrado. Este valor no tiene ningún efecto a menos que se especifique DT_END_ELLIPSIS o DT_PATH_ELLIPSIS.
DT_NOCLIP
Dibuja sin recortar. DrawTextEx es algo más rápido cuando se usa DT_NOCLIP.
DT_NOFULLWIDTHCHARBREAK
Impide un salto de línea en un DBCS (cadena de caracteres de doble ancho), de modo que la regla de salto de línea sea equivalente a las cadenas SBCS. Por ejemplo, esto se puede usar en ventanas coreanas para obtener más legibilidad de las etiquetas de icono. Este valor no tiene ningún efecto a menos que se especifique DT_WORDBREAK.
DT_NOPREFIX
Desactiva el procesamiento de caracteres de prefijo. Normalmente, DrawTextEx interpreta los caracteres de mnemonic-prefix (&) como una directiva para resaltar el carácter siguiente, y los caracteres de doble amperado (&&) caracteres de prefijo mnemónico como una directiva para imprimir una sola y comercial. Al especificar DT_NOPREFIX, este procesamiento está desactivado. Comparación con DT_HIDEPREFIX y DT_PREFIXONLY
DT_PATH_ELLIPSIS
Para el texto mostrado, reemplaza los caracteres en el centro de la cadena por puntos suspensivos para que el resultado se ajuste al rectángulo especificado. Si la cadena contiene caracteres de barra diagonal inversa (\\), DT_PATH_ELLIPSIS conserva tanto como sea posible el texto después de la última barra diagonal inversa. La cadena no se modifica a menos que se especifique la marca DT_MODIFYSTRING.

Compare con DT_END_ELLIPSIS y DT_WORD_ELLIPSIS.

DT_PREFIXONLY
Dibuja solo un subrayado en la posición del carácter que sigue al carácter de prefijo (&). No dibuja ningún carácter en la cadena.

Ejemplo:

cadena de entrada: "A&bc&&d"

normal: "Abc&d"

PREFIXONLY: " _ "

Compare con DT_NOPREFIX y DT_HIDEPREFIX.

DT_RIGHT
Alinea el texto a la derecha.
DT_RTLREADING
Diseño en orden de lectura de derecha a izquierda para texto bidireccional cuando la fuente seleccionada en el hdc es una fuente hebreo o árabe. El orden de lectura predeterminado para todo el texto es de izquierda a derecha.
DT_SINGLELINE
Muestra texto solo en una sola línea. Los retornos de carro y las fuentes de línea no rompen la línea.
DT_TABSTOP
Establece las tabulaciones. La estructura DRAWTEXTPARAMS a la que apunta el parámetro lpDTParams especifica el número de anchos de caracteres promedio por tabulación.
DT_TOP
Justifica el texto en la parte superior del rectángulo.
DT_VCENTER
Centra el texto verticalmente. Este valor solo se usa con el valor de DT_SINGLELINE.
DT_WORDBREAK
Rompe palabras. Las líneas se interrumpen automáticamente entre palabras si una palabra se extiende más allá del borde del rectángulo especificado por el parámetro lprc. Una secuencia de avance de retorno de carro también rompe la línea.
DT_WORD_ELLIPSIS
Trunca cualquier palabra que no se ajuste al rectángulo y agrega puntos suspensivos.

Compare con DT_END_ELLIPSIS y DT_PATH_ELLIPSIS.

[in] lpdtp

Puntero a una estructura DRAWTEXTPARAMS que especifica opciones de formato adicionales. Este parámetro puede ser null.

Valor devuelto

Si la función se ejecuta correctamente, el valor devuelto es el alto del texto en unidades lógicas. Si se especifica DT_VCENTER o DT_BOTTOM, el valor devuelto es el desplazamiento de lprc->top a la parte inferior del texto dibujado.

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

Observaciones

La función DrawTextEx solo admite fuentes cuyo escape y orientación son cero.

El modo de alineación de texto para el contexto del dispositivo debe incluir las marcas TA_LEFT, TA_TOP y TA_NOUPDATECP.

Nota

El encabezado winuser.h define DrawTextEx 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 winuser.h (incluya Windows.h)
biblioteca de User32.lib
DLL de User32.dll
conjunto de API de ext-ms-win-ntuser-misc-l1-2-0 (introducido en Windows 8.1)

Consulte también

DRAWTEXTPARAMS

drawText

funciones de fuente y texto de

de información general de fuentes y texto de