C/Visual C - Texto en Visual C++

 
Vista:

Texto en Visual C++

Publicado por luis (8 intervenciones) el 27/02/2001 16:32:13
Please, Necesito poder dibujar el texto con un cierto angulo de inclinacion, si alguien sabe como hacerlo le agradeceria mucho.
Ah es Visual C++.
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 dibujar texto con inclinación en Visual C++

Publicado por Alejandro (1286 intervenciones) el 06/09/2024 18:22:20
Claro, puedo ayudarte con eso. Para dibujar texto con un cierto ángulo de inclinación en Visual C++, puedes utilizar la función "SetWorldTransform" junto con la función "TextOut" de la biblioteca de Windows (WinAPI). Aquí te muestro un ejemplo de cómo hacerlo:

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
36
37
38
#include <Windows.h>
 
void DrawTextWithAngle(HDC hdc, const wchar_t* text, int x, int y, double angle)
{
    // Crear una matriz de transformación para rotar el texto
    XFORM xform;
    xform.eM11 = (FLOAT)cos(angle);
    xform.eM12 = (FLOAT)sin(angle);
    xform.eM21 = (FLOAT)-sin(angle);
    xform.eM22 = (FLOAT)cos(angle);
    xform.eDx = 0.0f;
    xform.eDy = 0.0f;
 
    // Establecer la matriz de transformación en el contexto de dispositivo
    SetGraphicsMode(hdc, GM_ADVANCED);
    SetWorldTransform(hdc, &xform);
 
    // Dibujar el texto inclinado
    TextOut(hdc, x, y, text, lstrlen(text));
 
    // Restaurar la matriz de transformación original
    SetGraphicsMode(hdc, GM_COMPATIBLE);
    SetWorldTransform(hdc, NULL);
}
 
int main()
{
    // Obtener el contexto de dispositivo de la ventana o lienzo donde deseas dibujar
    HDC hdc = GetDC(NULL);
 
    // Dibujar el texto con un ángulo de inclinación de 45 grados
    DrawTextWithAngle(hdc, L"¡Hola mundo!", 100, 100, 45 * 3.14159 / 180.0);
 
    // Liberar el contexto de dispositivo
    ReleaseDC(NULL, hdc);
 
    return 0;
}

En este ejemplo, la función "DrawTextWithAngle" toma como argumentos el contexto de dispositivo (HDC), el texto a dibujar, las coordenadas (x, y) donde se dibujará el texto y el ángulo de inclinación en radianes. La función crea una matriz de transformación para rotar el texto, establece esta matriz en el contexto de dispositivo utilizando "SetWorldTransform" y luego utiliza "TextOut" para dibujar el texto inclinado. Finalmente, se restaura la matriz de transformación original.

Espero que esta información te sea útil. ¡Buena suerte con tu proyecto en Visual C++, Luis!
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