Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > MainMenu шрифт


Автор: Incinerated 11.2.2009, 12:07
есть компонентик на форме MainMenu. Как можно изменить шрифт и размер шрифта для данного компонента? smile И как следствие, если можно, то нужно и высоту его изменить, т.е. если шрифт больше то он же может и не влезть...
Спасибо.

Автор: taiven 11.2.2009, 13:39
только если рисовать самому:
Код

__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
    MainMenu1->OwnerDraw = true;
}
//---------------------------------------------------------------------------

void __fastcall TForm1::N1DrawItem(TObject *Sender, TCanvas *ACanvas,
      TRect &ARect, bool Selected)
{
    if(Selected)
    {
        ACanvas->Brush->Color = clBlack;
        ACanvas->Font->Color = clWhite;
    }
    else
    {
        ACanvas->Brush->Color = clBtnFace;
        ACanvas->Font->Color = clBlack;

    }
    ACanvas->FillRect(ARect);
    ACanvas->Font->Name = "Arial";
    ACanvas->Font->Size = 9;
    ACanvas->TextRect(ARect, ARect.Left + 3, ARect.Top + 3, "Open");
}
//---------------------------------------------------------------------------

void __fastcall TForm1::N1MeasureItem(TObject *Sender, TCanvas *ACanvas,
      int &Width, int &Height)
{
    Width = 100;
    Height = 20;
}
//---------------------------------------------------------------------------

Автор: Incinerated 11.2.2009, 13:54
Код

    ACanvas->Font->Name = "Arial";
    ACanvas->Font->Size = 14;

поставил в Вашем коде так, и не влезает по высоте :( не понятно как саму полоску менюшки расширить и хотелось бы в идеале у этой полоски цвет поменять на любой smile
P.S. строчка 
Код

MainMenu1->OwnerDraw = true;

в конструкторе не срабатывает... она вроде нигде не срабатывает... все изменения происходят, если в компоненте на форме тыкнуть это свойство... а хотелось бы и в коде как-нибудь smile

Автор: taiven 11.2.2009, 14:20
Цитата(Incinerated @  11.2.2009,  12:54 Найти цитируемый пост)
поставил в Вашем коде так, и не влезает по высоте :( не понятно как саму полоску менюшки расширить и хотелось бы в идеале у этой полоски цвет поменять на любой

Код

void __fastcall TForm1::N1MeasureItem(TObject *Sender, TCanvas *ACanvas,
      int &Width, int &Height)
{
    Width = 100;
    Height = 40; //!!!
}

Цитата(Incinerated @  11.2.2009,  12:54 Найти цитируемый пост)
в конструкторе не срабатывает... она вроде нигде не срабатывает... все изменения происходят, если в компоненте на форме тыкнуть это свойство... а хотелось бы и в коде как-нибудь

странно, у меня работает...

Автор: Incinerated 11.2.2009, 14:29
Цитата(taiven @ 11.2.2009,  14:20)
Код

void __fastcall TForm1::N1MeasureItem(TObject *Sender, TCanvas *ACanvas,
      int &Width, int &Height)
{
    Width = 100;
    Height = 40; //!!!
}

Я пробовал там. В свойстве высота хоть 40 хоть 1000 никаких изменений, ширина меняется а высота - нет...Высота меняется в выпадающем меню, т.е. Файл->Открыть.... меняется высота для "Открыть" а для "Файл" - нет... там полоска самого меню стандартная - маленькая...
Цитата

странно, у меня работает...

у меня - нет, я даже комп перегрузил...создал чистый проект File->New->Application. И не пашет :( только если в компоненте :(

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)