Rotación de un Texto.

// Ejemplo sacado en parte de pag.901. Guia de Desarroyo c++ Builder 5
TLogFont logFont; // Una Encapsulacion de la VCL de WIN32 LOGFONT
// La Estructura LOGFONT define el atributo de la fuente
HFONT hOldFont; // El Handle de la Fuente ( antes de que se aplique el atributo logfont )
HFONT hNewFont; // El Handle de la Fuente ( despues de que son aplicados los atributos logfont)
Form1->Refresh(); // Para ver , como pinta cada vez, quitar esta linea
// Comenzando la Definicion de letras,tamañaos, Color de Fondo …
Canvas->Font->Name= »Arial »;
Canvas->Font->Size =24;
Canvas->Brush->Color =clInfoBk; // Color de Fondo – RGB(120,100,100);
// Crea una Instancia de TLogFont del Canvas, a la fuente Actual
GetObject(Canvas->Font->Handle,sizeof(logFont),&logFont);
// Se asigna 450=45 grados, se ponen en el sentido de las agujas del reloj
logFont.lfEscapement= 450;
logFont.lfOrientation= 450

// Aplica el atributo LogFont al conjunto de caracteres actuales y graba el handle en hNewFont
hNewFont=CreateFontIndirect(&logFont);
// Graba el Handle al conjunto de caracteres viejo (el Canvas de la Fuente actual)
// y pone el conjunto de caracteres del Canvas al nuevo conjunto de caracteres

hOldFont=SelectObject(Canvas->Handle,hNewFont);
// Canvas->TextOut(int(2.5*GetDeviceCaps(Canvas->Handle,LOGPIXELSY)),int(3.0*GetDeviceCaps(Canvas->Handle,LOGPIXELSY)), »Rotated TExt! »);
// Imprime el Texto Usando la Rotacion de la Fuente
Canvas->TextOut(300,300, » ! Texto a Rotar! « );

// Restaure la Fuente vieja, para que ahora el Form Canvas coja la fuente por defecto
SelectObject(Canvas->Handle,hOldFont);

// Borra nuestra Instacia de la nueva fuente
DeleteObject(hNewFont);