如果想不重载cmenu类,可以使用api中的setmenuinfo
具体步骤
在类中声明cbrush 对象,我的为m_brush;
然后在改变背景颜色的代码中添加如下代码
::MENUINFO lpcmi;
m_brush.CreateSolidBrush(RGB(255,0,0));
memset(&lpcmi,0,sizeof(::LPCMENUINFO));
lpcmi.cbSize=sizeof(MENUINFO);
lpcmi.fMask= MIM_BACKGROUND;
lpcmi.hbrBack=(HBRUSH)m_brush.operator HBRUSH();
::SetMenuInfo(GetMenu()->m_hMenu,&lpcmi);