холст — как рисовать текст с ориентацией, выравниванием по центру и переносом слов (VCL C ++)?

Я пытаюсь нарисовать текст на холсте для рисования с ориентацией = 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) ;
}

Может ли кто-нибудь помочь мне нарисовать текст (как на картинке выше) на холсте?
Большое спасибо.

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector