更改Win32菜单颜色

有没有办法改变单纯进程使用纯Win32菜单(背景,文本和高亮)使用的颜色,没有使用SetSysColors?更改Win32菜单颜色

(SetSysColors做一个全球性的变化,这是不好的,如果你崩溃或忘记退出前重新设置颜色回来SetSysColors,直到你退出,他们将无法恢复。)

回答:

如果我相信,抢你的评论,它是一个皮肤应用,以特殊的外观和感觉。所以要走的路很可能确实如ferek指出(在不友善的方式...)使用自行绘制的菜单:您将能够精确定义它们的外观。

回答:

的SetMenuInfo() API是你的朋友。它可让您应用任何画笔来绘制菜单的背景。

沿着这些线路的东西应该解决您的问题:

MENUINFO mi = { 0 }; 

mi.cbSize = sizeof(mi);

mi.fMask = MIM_BACKGROUND|MIM_APPLYTOSUBMENUS;

mi.hbrBack = hBrush;

HMENU hMenu = ::GetMenu(hWnd);

SetMenuInfo(hMenu, &mi);

回答:

我要问,为什么?采用常规的Windows外观很不错,这意味着用户可以确信自己的用户界面中有一致的元素,他们可以使用其他软件为平台映射他们的体验。

[我可能说教的转换,当然,但我想我会做点这样的人谁读这个答案没有开始做他们的所有菜单天蓝色,粉红色的“因为它小艾]

以上是 更改Win32菜单颜色 的全部内容, 来源链接: utcz.com/qa/262348.html

回到顶部