//---------------------------------------------------------------------------//
FUNCTION SayRotated(oWnd,Y,X,cPrompt,oFont,nClrText,nClrPane,l3D)
LOCAL hDC := oWnd:hDC
DEFAULT nClrText := CLR_HRED, l3D := .T.
IF l3D
DrawRotated( hdc, cPrompt, Y + 1, X + 1, CLR_BLACK, nClrPane, oFont )
DrawRotated( hdc, cPrompt, Y - 1, X - 1, nClrText, nClrPane, oFont )
ENDIF
DrawRotated( hdc, cPrompt, Y , X , nClrText, nClrPane, oFont )
RETURN Nil
//----------------------------------------------------------------------------
STATIC FUNCTION DrawRotated(hDC,cPrompt,Y,X,nClrText,nClrPane,oFont)
LOCAL hOldFont, nOldMode, nOldClrText, nOldClrPane, nOldBkMode
nOldClrText:= SetTextColor( hDC, nClrText )
IF nClrPane <> Nil
nOldClrPane := SetBkColor( hDC, nClrPane )
ELSE
nOldBkMode := SetBkMode( hDC,1 )
ENDIF
hOldFont:= SelectObject( hDC, oFont:hFont )
TextOut( hDC, Y, X, cPrompt, LEN( cPrompt ) )
SelectObject( hDC, hOldFont )
IF nClrPane<>nil
SetBkColor( hDC, nOldClrPane )
ELSE
SetBkMode( hDC, nOldBkMode )
ENDIF
SetTextColor( hDC, nOldClrText )
RETURN Nil
//----------------------------------------------------------------------------//