在MFC对话框中更改菜单栏背景颜色

时间:2015-11-06 16:46:18

标签: colors menu mfc dialog

我想更改整个菜单栏的颜色。我已经找到了一些关于这个主题的帖子,但到目前为止没有人帮我。特别是我想使用像这个简单的片段:

    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似乎无法奏效。这与窗口是对话有关吗?我已尝试在OnInitDialogOnCreate中调用它。

1 个答案:

答案 0 :(得分:0)

要自定义CMenu,您需要使用MF_OWNERDRAW样式。基本上,您需要处理WM_MEASUREITEMWM_DRAWITEM消息以实现所需的功能。