如题  ↑
代码如下: CBrush m_brush;
::MENUINFO lpcmi;                        
m_brush.CreateSolidBrush(RGB(192,192,192));
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); 
经测试上面代码,在vs2005中运行能修改菜单背景颜色,在vs2005中编译没问题,运行时在报错
C:\Documents and Settings\Administrator\桌面\1.jpg在线等~~~~~

解决方案 »

  1.   

    上一个贴子连接发了3次,不能再发了,转到这个贴子.
    你试试这段代码看看行不行:
    m_wndMenu.LoadMenu(IDR_MAINFRAME);//主要是这两句
    SetMenu(&m_wndMenu);//主要是这两句   
       
    MENUINFO   menuinfo;      
    menuinfo.cbSize = sizeof(MENUINFO);   
    menuinfo.fMask = MIM_BACKGROUND;      
    menuinfo.hbrBack = ::CreateSolidBrush(RGB(255,0,0));      
    CMenu*  pMenu = GetMenu();      
    ::SetMenuInfo(pMenu->m_hMenu, &menuinfo);      
    DrawMenuBar();   
    我用VS2010生成的工程是VISUAL STUDIO 样式的,没有上面两句