Сборник часто задаваемых вопросов по программированию в среде Borland C++ Builder

           

Как на повернуть на 90...



Вопрос: Как на повернуть на 90 градусов шрифт на компоненте (например TPanel или TLabel), чтоб он отображался не справа налево, а сверху вниз?

Ответ : Для этого придется самому писать такой компонент, и в нем рисовать текст под углом. Ниже код для отрисовки текста под любым углом. code: -------------------------------------------------------------------------------- #include "math.hpp" void AdvTextOut( AnsiString slString, TCanvas* pCanvas, int ilXPos, int ilYPos, double dlHeightInMm, double dlAngle ) { int ilFontHeight = Ceil( double ( dlHeightInMm * double( GetDeviceCaps( pCanvas->Handle, LOGPIXELSY ) ) / 25.4 ) ); HFONT hFont = CreateFont( ilFontHeight, 0, dlAngle * 10, dlAngle * 10, FW_BOLD, false, false, false, DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY , DEFAULT_PITCH | FF_DONTCARE, pCanvas->Font->Name.c_str() ); SelectObject( pCanvas->Handle, hFont ); TextOut(pCanvas->Handle, ilXPos, ilYPos, slString.c_str(), slString.Length()); DeleteObject( hFont ); } //---------------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { Canvas->Ellipse(195, 195, 205, 205); Canvas->Font->Name = "Times New Roman"; AdvTextOut("My Text", Canvas, 200, 200, 6.4, 75); } -------------------------------------------------------------------------------- !!! Не все шрифты можно вывести под углом. !!!!!

Содержание раздела