【问题标题】:CMenu border color on MFCMFC上的CMenu边框颜色
【发布时间】:2015-05-20 15:08:20
【问题描述】:

我有一个继承自 CMenu Owner draw menu 的类

使用此类,Menu 会正确显示,但是,例如,当您打开菜单 FILE 时,您会看到标准菜单颜色的边框和分隔符

我如何才能将这部分也涂上所需的颜色?

在图像下方,您可以看到带有选定颜色(绿色)的文件子菜单和边框/间隔上的标准窗口菜单灰色

【问题讨论】:

  • 您无法更改菜单边框。还有其他菜单类是窗口,但它们的作用类似于菜单,您可以对它们做任何事情。您使用什么 IDE/版本?实际上,您可能希望不要管它,而不必担心边界。
  • 有一个工具,虽然有点旧,但您可以使用它来更改窗口、按钮、菜单等的外观和颜色,www.appface.com。分隔符颜色肯定可以更改,但我不确定边框。试一试,它有试用期。

标签: mfc cmenu ondrawitem


【解决方案1】:

使用菜单示例,这可以通过“AddSubMenus”函数中的这些代码行来实现

MENUINFO MenuInfo = { 0 };
MenuInfo.cbSize = sizeof(MENUINFO);
GetMenuInfo(&MenuInfo);
MenuInfo.hbrBack = ::CreateSolidBrush(RGB(0, 0, 0));
MenuInfo.fMask = MIM_BACKGROUND | MIM_STYLE;
MenuInfo.dwStyle = MIM_APPLYTOSUBMENUS;
SetMenuInfo(&MenuInfo);
tmpmenu.SetMenuInfo(&MenuInfo);

【讨论】:

  • MIM_APPLYTOSUBMENUS 必须是 fMask 的一部分,而不是 dwStyle。此外,这对颜色分隔符/边框没有帮助。
猜你喜欢
  • 1970-01-01
  • 2017-09-30
  • 2018-07-09
  • 2013-10-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多