Я пытаюсь нарисовать текст на холсте для рисования с ориентацией = 900, выравниванием по центру и переносом текста в прямоугольник Canvas. Текст должен выглядеть как на картинке ниже.
Я использую Embarcadero XE5 c ++ IDE, и я попробовал, как показано ниже, но это не работает.
void __fastcall TForm1::PBoxPaint(TObject *Sender)
{
TRect R , DrawRect ;
unsigned int DrawFlags = 0;
TDrawTextParams DrawParams ;
PBox->Font->Orientation = 900 ;
PBox->Canvas->Rectangle(PBox->ClientRect) ;
String S = L"Angualar Text" ;
R = PBox->ClientRect ;
InflateRect(R,-2,-2) ;
DrawRect = R ;
DrawFlags = DT_END_ELLIPSIS | DT_NOPREFIX | DT_WORDBREAK | DT_EDITCONTROL | DT_CENTER ;
DrawText(PBox->Canvas->Handle, S.c_str() , -1 , &DrawRect, DrawFlags | DT_CALCRECT) ;
DrawRect.Right = R.Right;
if (DrawRect.Bottom < R.Bottom)
{
OffsetRect( DrawRect, 0, ( R.Bottom - DrawRect.Bottom ) / 2 );
}
else
{
DrawRect.Bottom = R.Bottom;
}
DrawParams.iTabLength = 0 ;
DrawParams.iLeftMargin = 0 ;
DrawParams.iRightMargin = 0 ;
DrawParams.uiLengthDrawn = 0 ;
DrawParams.cbSize = sizeof(DrawParams) ;
DrawTextEx(PBox->Canvas->Handle,S.c_str(),-1,&DrawRect,DrawFlags,&DrawParams) ;
}
Может ли кто-нибудь помочь мне нарисовать текст (как на картинке выше) на холсте?
Большое спасибо.
Задача ещё не решена.
Других решений пока нет …