我想更改整个菜单栏的颜色。我已经找到了一些关于这个主题的帖子,但到目前为止没有人帮我。特别是我想使用像这个简单的片段:
MENUINFO MenuInfo = {0};
MenuInfo.cbSize = sizeof(MenuInfo);
MenuInfo.hbrBack = *NewBrush; // Brush you want to draw
MenuInfo.fMask = MIM_BACKGROUND;
MenuInfo.dwStyle = MNS_AUTODISMISS;
MenuInfo.cyMax = 25;
CMenu* pMenu = GetMenu();
HMENU mh = pMenu->GetSafeHmenu();
if(IsMenu(pMenu->m_hMenu))
{
SetMenuInfo(mh, &MenuInfo);
}
但GetMenu
似乎无法奏效。这与窗口是对话有关吗?我已尝试在OnInitDialog
和OnCreate
中调用它。
答案 0 :(得分:0)
要自定义CMenu
,您需要使用MF_OWNERDRAW
样式。基本上,您需要处理WM_MEASUREITEM
和WM_DRAWITEM
消息以实现所需的功能。