有的
GetSubMenu
EnableMenuItem
或者mfc的话,处理onupdate消息就可以了

解决方案 »

  1.   

    是没有ID的popup菜单,我要禁止他的所有下级菜单,但又不想对下级菜单逐个进行控制
      

  2.   

    EnableMenuItem可以按position来进行的,用MF_BYPOSITION选项就可以了:
    EnableMenuItem(0, MF_BYPOSITION | MF_DISABLED | MF_GRAYED);
    其中,0是位置。
      

  3.   

    按位置呢,看看用MF_BYPOSITION参数行不?
    uIDEnableItem 从0算起
    if(!::EnableMenuItem(hMenu, uIDEnableItem, MF_BYPOSITION|MF_GRAYED))
       ::MessageBox(0, "这样也不行:)", "", MB_OK);
      

  4.   

    完整的:
    如果,你的"文件"在菜单中的位置是0,而"数据管理"在"文件"中的位置也是0,则代码如下:
    CMenu *pMenu = GetMenu(); // 菜单条
    pMenu = pMenu->GetSubMenu(0); // "文件"菜单
    pMenu->EnableMenuItem(0, MF_BYPOSITION | MF_DISABLED | MF_GRAYED); // 禁止"数据管理"项
      

  5.   

    CMenu* mmenu = GetMenu();
    CMenu* submenu = mmenu->GetSubMenu(0);
    submenu->EnableMenuItem(0, MF_BYPOSITION | MF_GRAYED);其中上面两行的0均是参数,要做对应的调整,
      

  6.   

    CMenu* mmenu = GetMenu();
    CMenu* submenu = mmenu->GetSubMenu(0);
    submenu->EnableMenuItem(0, MF_BYPOSITION | MF_GRAYED);