不对呀,我的程序中的UPDATE_COMMAND_UI是可以使菜单变灰的?

解决方案 »

  1.   

    yourMenu->EnableMenuItem(...,MF_GRAYED);
      

  2.   

    响应WM—ININMENUPOPUP,(名字好象错了,大致是这个名字),然后自己构造CCMDUI,调用DOUPDATE,最简单的方法,拷贝CWND::ONINITMENUPOPUP中的代码到你的函数里。
      

  3.   

    ...
    CMENU menu=loadmenu(menuid);
    menu->enablemenuitem(menuitemid,MF_DISABLED);
    ...
    add it ,it is ok!
      

  4.   

    以上都试了,都不管用。Bottol(),我想你还没理解我的意思。
    “在右键单击弹出菜单的操作中,每一次弹出都会重新初始化菜单项”,这似乎是白痴都知道的事。我要不是想用变量控制菜单的状态,那还让它变灰干么?我不设这个菜单就是了。
      

  5.   

    void CDlgtest::OnRButtonUp(UINT nFlags, CPoint point) 
    {
    // TODO: Add your message handler code here and/or call default POINT point1;
    ::GetCursorPos(&point1);
    CMenu myPopMenu;
    myPopMenu.LoadMenu(IDR_MENU1);
             CMenu *pSubMenu=myPopMenu.GetSubMenu(0);
    pSubMenu->EnableMenuItem(ID_ONE,MF_GRAYED);//这一句可以使变友呀。你为什么说不行呢。你再加个BOOL变量控制它就行了。
    pSubMenu->TrackPopupMenu(TPM_LEFTALIGN,point1.x,point1.y,this,0); CDialog::OnRButtonUp(nFlags, point);
    }