现在想在不同的条件下弹出不同的菜单,这菜单的Item个数相同,大多数的item一样且响应的消息也一致.但在不同的情况下,其中某一个item上面的字不一样,怎么样实现?当然可以建很多的菜单,或者同一菜单建很多的SubMenu,用GetSubMenu(i)来区别,但是感觉还是 很麻烦.有没有函数可以直接改动弹出菜单上的item的字符呢?

解决方案 »

  1.   

    如下代码修改MENU ITEM上字符显示CMenu   Menu; 
    Menu.Attach(m_dlgCommandBar.GetMenu()); 
    Menu.ModifyMenu(0,MF_BYPOSITION,0,_T( "TEST ")); 
    DrawMenuBar(this-> m_hWnd); 
      

  2.   

    我用的函数和楼上的一样,但是完全按楼上的没有解决问题,可能是弹出菜单和固定菜单的差异吧.
    我在百度搜到了一条
    右键弹出菜单修改内容m_menu.ModifyMenu(ID_SIMULATE,MF_BYCOMMAND|MF_STRING,ID_SIMULATE,_T("贴装暂停")); 主菜单菜单项修改内容mframe->GetMenu()->GetSubMenu(2)->ModifyMenu(ID_SIMULATE,MF_BYCOMMAND|MF_STRING,ID_SIMULATE,_T("贴装暂停"));msdn中关于第一个参数的说明
    用这个解决了问题.总之,也非常感谢zhangnanonnet的回复!