onupdate()
{
   pCmUI?->Enable=false;
}

解决方案 »

  1.   

    还有:
    为何不能Disable菜单项
    问:我有一个工具按钮在WM_COMMAND消息是这样做的:CMenu *pMenu = GetMenu();
    pMenu->EnableMenuItem(ID_MY_OPTION,MF_BYCOMMAND|MF_DISABLED);但菜单并没有被Disable
    答:缺省的习惯是当没有UpdateCmdUI句柄时程序是使能(Enable)菜单,这就是为什么菜单自动变成使能,只要关掉缺省值就可以了,把下面的代码加入你的程序 
    CMainFrm::CMainFrm
    {
        // Other stuff
        this->m_bAutoMenuEnable = false;
    }
    摘自vckbase
      

  2.   

    EnableMenuItem(hMenu, nID, MF_DISABLED|MF_GRAYED);
      

  3.   

    to: verybigbug() 
    这个我知道,可是你的那个hMenu 是怎么来的!
    我用的是 loadMenu 或者是 GetMenu
    然后 又用的是 GetSubMenu 去得到他的子菜单,都有返回值,可是一到EnableMenuItem
    就失败 这是为什么啊!!!是不是 我那里做错了!!! 
    m_hPrintSetMenu = LoadMenu(GetModuleHandle(NULL),MAKEINTRESOURCE(IDR_MAINFRAME));
    m_hPrintSetSubMenu  = GetSubMenu (m_hPrintSetMenu, 3);
    res = EnableMenuItem(m_hPrintSetSubMenu,ID_SET_SPE_PRINTER,MF_BYCOMMAND|MF_DISABLED|MF_GRAYED);
    //res 返回0;
      

  4.   

    已经存在的Meu就不要再Load,用GetMenu(hWnd);
    LoadMenu会产生新的MenuHandle??可能吧,没研究过。
      

  5.   

    我快要烦死了! 我看别人的程序都是这样做的
    先 GetMenu 然后就是 EnableMenuItem
    我也这样做 结果就不行! 我到底是错在那里了!!! m_hPrintSetSubMenu = ::GetMenu(m_hWnd);
    res = EnableMenuItem(m_hPrintSetSubMenu,ID_SET_SPE_PRINTER,MF_GRAYED);m_hPrintSetSubMenu 有意义,可是 res就是 零了! 我真是搞不明白我那里不对了!!!
      

  6.   

    在补充一句! 技术我几行代码是加在 
    MainFram 里的 OnCreate 里面的!
    问题是不是出在这里呢!》?????