Simple way to rotate a piece of text is to use a font object… Here is a sample which does this…
void CSomeDlg::OnPaint()
{
CPaintDC dc(this);
// Get existing dlg font
CFont NewFont;
LOGFONT lgFnt = { 0 };
GetFont()->GetLogFont(&lgFnt);
// Modify this existing font //
// Face name is important, some font's like MS Sans Serif doesn't work
strcpy( lgFnt.lfFaceName, "Arial" );
// Give rotation as multiples of 10, so rotation will be 90 degrees
lgFnt.lfOrientation = 900;
lgFnt.lfEscapement = 900;
// Create a font from this log font
VERIFY( NewFont.CreateFontIndirect( &lgFnt ));
// Save this DC
const int DcRestorePoint = dc.SaveDC();
dc.SetBkMode( TRANSPARENT );
// Set this font to DC
dc.SelectObject( &NewFont );
dc.TextOut( 100,100, _T( "Nibu babu thomas loves Jesus Christ" ));
// Restore dc to previous state
dc.RestoreDC( DcRestorePoint );
}// End OnPaint
Not much of work ! 
The post How to rotate text using WinAPI? appeared first on bits and bytes.