C ++ Builder меняет цвет фона главного меню

Вот скрипт, который демонстрирует, как изменить цвет фона на пунктах главного меню, в то время как остальная часть меню все еще остается в сером цвете

 void __fastcall TForm1::AdvancedDrawNewItemMain(TObject *Sender, TCanvas *ACanvas,    const TRect &ARect,
TOwnerDrawState State)
{

TMenuItem *MenuItem = ((TMenuItem*)Sender);
TRect  TempRctN = ARect;
TempRectN.top=TempRctN.top+2;
ACanvas->Brush->Color =clRed;
ACanvas->FillRect(ARect);DrawTextW(ACanvas->Handle,MenuItem->Caption.w_str(),MenuItem->Caption.Length(),&TempRctN, DT_CENTER);if((State.Contains(odSelected) || State.Contains(odHotLight) ) && !State.Contains(odDisabled) )
{
ACanvas->Brush->Color =static_cast<TColor>RGB(49,106,197);
ACanvas->FillRect(ARect);
ACanvas->Font->Color=clWhite;
DrawTextW(ACanvas->Handle,MenuItem->Caption.w_str(),MenuItem->Caption.Length(),&TempRctN, DT_CENTER);
}

}

Кто-нибудь знает, как изменить весь фоновый цвет основного меню?

0

Решение

ОС не поддерживает то, что вы просите. Стандарт TMainMenu Может только владелец-рисовать отдельные элементы, а не все меню в целом. Если вы хотите настроить все меню, вам придется использовать другой компонент, например, найти стороннюю реализацию пользовательского меню, которая поддерживает то, что вам нужно.

0

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

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