C/Visual C - DrawText (Principiante)

 
Vista:

DrawText (Principiante)

Publicado por VIRTUAJATS (18 intervenciones) el 27/08/2003 04:19:51
Mi duda es de programación en Windows...

Sé como cambiar el color y la posición de un hdc para insertar un texto con DrawText, Pero no se como cambiarle el tamaño y la fuente a ese texto... como lo hago...
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Cómo cambiar la fuente y tamaño del texto en Windows usando DrawText

Publicado por Alejandro (1286 intervenciones) el 23/07/2025 22:38:39
Hola, VIRTUAJATS.

Para cambiar la fuente y tamaño del texto que dibujas con `DrawText` en Windows, debes crear un objeto `HFONT` con las características deseadas y seleccionarlo en el contexto de dispositivo (`HDC`) antes de llamar a `DrawText`. Después, debes restaurar el `HFONT` original y liberar los recursos.

Aquí te explico paso a paso cómo hacerlo:

1. Crear la fuente con `CreateFont` o `CreateFontIndirect`
Puedes usar `CreateFont` para definir tamaño, tipo de letra, estilo, etc.

2. Seleccionar la fuente en el `HDC` con `SelectObject`
Esto hace que el texto que dibujes use esa fuente.

3. Llamar a `DrawText` para dibujar el texto con la fuente seleccionada.

4. Restaurar la fuente original y liberar la fuente creada con `DeleteObject`.

Aquí tienes un ejemplo completo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include <windows.h>
 
void DibujarTextoConFuente(HDC hdc, RECT rect, const char* texto) {
    // Crear una fuente personalizada
    HFONT hFont = CreateFont(
        -24,                        // Tamaño en píxeles (negativo para píxeles, positivo para puntos)
        0,                          // Ancho del carácter (0 para auto)
        0,                          // Ángulo de inclinación
        0,                          // Ángulo de orientación
        FW_NORMAL,                  // Peso de la fuente
        FALSE, FALSE, FALSE,        // Estilo: itálica, negrita, subrayado
        DEFAULT_CHARSET,            // Conjunto de caracteres
        OUT_DEFAULT_PRECIS,         // Precisión
        CLIP_DEFAULT_PRECIS,        // Clipping
        DEFAULT_QUALITY,            // Calidad
        DEFAULT_PITCH | FF_DONTCARE,// Tipo de fuente
        "Arial"                     // Nombre de la fuente
    );
 
    // Guardar el antiguo objeto de fuente
    HFONT hOldFont = (HFONT)SelectObject(hdc, hFont);
 
    // Opcional: ajustar el modo de texto
    SetBkMode(hdc, TRANSPARENT);
    SetTextColor(hdc, RGB(255, 0, 0)); // Color rojo
 
    // Dibujar el texto
    DrawText(hdc, texto, -1, &rect, DT_CENTER | DT_VCENTER | DT_SINGLELINE);
 
    // Restaurar la fuente original
    SelectObject(hdc, hOldFont);
 
    // Liberar la fuente creada
    DeleteObject(hFont);
}

Resumen:
- Usa `CreateFont` para definir tamaño y estilo.
- Selecciona la fuente en el `HDC`.
- Dibuja con `DrawText`.
- Restaura y elimina la fuente cuando termines.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar