我发现用AppendMenu动态添加的菜单栏是disable的,哪怕调用EnableMenuItem也没有办法让变灰的菜单栏enable,不知道大家是怎么解决这个问题的,麻烦解答下,十分感激~~~

解决方案 »

  1.   


    #define NEW_MENU_ID  WM_USER + 100OnRButtonDown(UINT nFlags, CPoint point)
    {
      CMenu menu;
      menu.LoadMenu(IDR_MAINFRAME);
      CMenu *pTrackMenu = menu.GetSubMenu(0);
      pTrackMenu->AppendMenu(MF_STRING,NEW_MENU_ID,_T("新菜单"));
      pTrackMenu->TrackPopupMenu(TPM_LEFTALIGN,point.x,point.y,this,CRect(0,0,200,200));
    }
      

  2.   

    to lights_joy: 可是这个菜单是动态的生成的,怎么用代码添加事件处理函数呢,我重写了onCommand函数,可是菜单是灰的,调用不到这里~
    to zgl7903:     忘记说了,我是在主菜单上动态添加,不是动态添加鼠标右键菜单,不知道你遇到过主菜单上动态添加时子菜单变灰的情况么??
      

  3.   

    需要加入 ON_UPDATE_COMMAND_UI 命令响应
    ON_UPDATE_COMMAND_UI(ID_NEW_TEST_ID, OnNewMnueItem)OnNewMnueItem(CCmdUI* pCmdUI)
    {
      pCmdUI->Enable();
    }
      

  4.   

    后来改了CMainFrame中的m_bAutoMenuEnable就好了 谢谢你们啦 结贴去