如果想不重载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);
如果你的msdn找不到setmenuinfo可能是你的版本太低了,下一个2001版的吧,那里面有更新
如果那位高手用重载cmenu做出来了,告诉我一下,先谢谢了!!!!