C++Builder
  Начало   Форум   Помощь Войти Регистрация  
Страниц: [1]   Вниз
  Печать  
Автор Тема: Текст по центру  (Прочитано 1044 раз)
Sergey1985
Участник


Сказали спасибо: +8/-1
Offline

Сообщений: 310


Текст по центру
« : 07 Декабрь 2014, 23:20:21 »

Имеется код
void __fastcall TForm1::Button1MouseDown(TObject *Sender,
      TMouseButton Button, TShiftState Shift, int X, int Y)
{
    TControlCanvas *cc;
    cc = new  TControlCanvas();
    cc->Control = Button1;
    cc->Pen->Color = clGreen;
    cc->Pen->Width = 10;
    cc->Brush->Color = clBlue;
    cc->Rectangle(0,0,Button1->Width,Button1->Height);
    cc->Font->Color = clYellow;
    //TRect r;
    //r.Left = 0;
    //r.Top = 0;
    //r.Right = Button1->Width;
    //r.Bottom = Button1->Height;
    //DrawText(cc->Handle,Button1->Caption.c_str(),Button1->Caption.Length(),&r, DT_CENTER || DT_VCENTER);
    cc->TextOutA(Button1->Width-cc->TextWidth(Button1->Caption)/2,
                 Button1->Height-cc->TextHeight(Button1->Caption)/2,
                 Button1->Caption);
    delete cc;
}
Хочу вывести текс по центру кнопки. Но получается черти что
В комментах просто другой способ который тоже нихрена не пашет. Выводит по центру, но только сверху
А вот эта дрянь
cc->TextOutA(Button1->Width-cc->TextWidth(Button1->Caption)/2,
                 Button1->Height-cc->TextHeight(Button1->Caption)/2,
                 Button1->Caption);
Вообще где-то снизу справо
Подскажите в чем дело??? Что я не досмотрел
Записан
serg76
Участник


Сказали спасибо: +38/-2
Offline

Сообщений: 575


« Ответ #1 : 08 Декабрь 2014, 09:35:46 »

Код
  TSize Tsz;
 
 Image1->Canvas->Brush->Color=clWhite;
 Image1->Canvas->Rectangle(0,0,Image1->Width,Image1->Height);
 Tsz=Image1->Canvas->TextExtent("Hello world");
 
 Image1->Canvas->TextOutA(Image1->Width/2-Tsz.cx/2,Image1->Height/2-Tsz.cy/2,"Hello world");
 
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  




....

Powered by SMF 1.1.21 | SMF © 2025, Simple Machines
Страница сгенерирована за 0.083 секунд. Запросов: 19.