【问题标题】:C++ builder change main menu background colorC ++ builder更改主菜单背景颜色
【发布时间】:2012-11-22 10:47:31
【问题描述】:

这里是演示如何更改主菜单项的背景颜色的脚本,而菜单的其余部分仍然保持灰色

 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);
  }

}

有人知道如何更改整个主菜单背景颜色吗?

【问题讨论】:

    标签: c++ menu background-color c++builder


    【解决方案1】:

    操作系统不支持您的要求。标准的TMainMenu 只能所有者绘制单个项目,而不是整个菜单。如果要自定义整个菜单,则必须使用不同的组件,例如找到支持所需内容的第三方自定义菜单实现。

    【讨论】:

    • 雷米,非常感谢您的回答。您能指出我应该使用哪个组件来解决问题吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-16
    • 2014-07-05
    • 1970-01-01
    相关资源
    最近更新 更多