我按杨勇的三句话搞定qq菜单(www.ccrun.com里自画菜单例子)将主菜单改为自会菜单了,但是问题出来了

shally5 2005-04-21 09:21:39
我按杨勇的三句话搞定qq菜单(www.ccrun.com里自画菜单例子)将主菜单改为自会菜单了,但是问题出来了,
在窗口上的菜单栏中,有菜单的地方(有字的地方)底色变为白色了,
但没有字的地方还是灰色,很难看啊!
这样一来,一个菜单栏变成两种颜色的底色了,能否设置为同一底色呢?
如何解决呢?
...全文
194 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
constantine 2005-04-22
  • 打赏
  • 举报
回复
开小号???
shally5 2005-04-22
  • 打赏
  • 举报
回复
constantine(飘遥的安吉儿) :
我太心急啦!没仔细看,解决啦!
truelove7283159 2005-04-22
  • 打赏
  • 举报
回复
to 3996906(以后再说)
to constantine(飘遥的安吉儿)
to jishiping(JSP 季世平)

我也会画这样的菜单 按钮什么得了,对谢三位给予的帮助哦。最后没有用DIRECXTDRAW,也没有用第三方控件。都是自己画的,嘿嘿:)
constantine 2005-04-22
  • 打赏
  • 举报
回复
我知道啊,我回答就是啊,难道这一行不算菜单的一部分
在MainMenu的第一项---就是指这个了,估计我也表达的不好
你选种|文件(F) 编辑(E) 帮助(H) 3个项,在OnDrawItem用我上面的函数就可以了
如果这样你都还没有搞懂的话,留个email,我发个例子给你
3996906 2005-04-22
  • 打赏
  • 举报
回复
那用季头说的方法咯。。。。。。。
shally5 2005-04-22
  • 打赏
  • 举报
回复
我晕啊!我总是表达不清啊!
我说的是窗口标题栏下面的菜单栏那一行,不是菜单(菜单底色是白色的很正常)
如下:
+-------------------------------------------------+
|文件(F) 编辑(E) 帮助(H) |
+-------------------------------------------------+
在菜单中有"文件","编辑","帮助"字的地方底色是白色的,
而没有文字的地方("帮助"右边空白的地方就是灰色的)这
样菜单看起来很难看,左边是白色右边是灰色。
能否将灰色的地方也变为白色呢
constantine 2005-04-22
  • 打赏
  • 举报
回复
当然,用toolbar也行,不过要跟你的菜单风格统一估计也要自画toolbar
ccrun 的那个工具就是自画toolbar,也不是很难,关键要搭配就行了
constantine 2005-04-22
  • 打赏
  • 举报
回复
很简单,不过要根据你自画的颜色来画,我不知道你的 参数
简单可以这样做,你自己改,在MainMenu的第一项,也就是你说的那项,平时可以看到的,不要用你字画的函数,就在OnDrawItem中自己再画过
void __fastcall TForm1::a1DrawItem(TObject *Sender, TCanvas *ACanvas,
TRect &ARect, bool Selected)
{
ACanvas->Brush->Color=Form1->Color; //这里就是你要设置的颜色了
//如果还要其他的自己画过,我不知道你做了什么
//ACanvas->Brush->Style=bsClear;
TMenuItem *pItem = dynamic_cast<TMenuItem *>(Sender);
ARect.Left += 5;
::DrawText(ACanvas->Handle, pItem->Caption.c_str(), pItem->Caption.Length(),
&ARect, DT_LEFT | DT_VCENTER | DT_SINGLELINE);

}
NetSpider9804040 2005-04-22
  • 打赏
  • 举报
回复
同意季老大!
jishiping 2005-04-22
  • 打赏
  • 举报
回复
自画主菜单?还不如用Toolbar来实现主菜单,不用写一行代码,只要设定一下几个属性就可以了。
zhenyu362 2005-04-22
  • 打赏
  • 举报
回复
应为写字的时候默认背景色是白色
zhenyu362 2005-04-22
  • 打赏
  • 举报
回复
SetBkColor
3996906 2005-04-21
  • 打赏
  • 举报
回复
ACanvas->Brush->Color=clWhite;//RGB(249,248,247);//设置菜单的背景色
// ARect.Left=ARect.Left-20;
// ARect.Right=ARect.Right+20;
ACanvas->FillRect(ARect); //填充背景
ACanvas->Brush->Color=clWhite;//TColor(RGB(219,216,209));//左边竖条颜色RGB //改这里的一句,就是白的了~~~~~~~~~`不知道是不是要这样。。。。你这个要求很难明白滴说
3996906 2005-04-21
  • 打赏
  • 举报
回复
寒。。。。终于看明白了。。。。。。是放图标那里吧是灰的吧

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧