基于对话框的程序,当点击菜单某一项时弹出另一个对话框,这是个非模态的对话框
要怎么控制当这个子对话框生成时,对应的菜单按钮变灰色,当关闭这个对话框,相应
的菜单按钮恢复呢?

解决方案 »

  1.   

    用 CMenu 类的 EnableMenuItem(ID_ITEM,FALSE)
    详细内容请查阅 MSDN
      

  2.   

    可以建立菜单按钮的更函数啊.
    OnUpdateXXX(CCmdUI* pCmdUI)
    {
         pCmdUI->Enable(!m_bHasCreate);
    }
      

  3.   

    5楼的方法我试过了,好像不行啊
    点击菜单按钮将执行OnUpdateXXX(),而不会执行DoModel(),子对话框都生成不了。
      

  4.   

    设一 BOOL 变量,初始 m_bool=TRUE ;
    当调用单击菜单项时 更改 m_bool=FALSE;
    调用OnUpdateXXX(CCmdUI*   pCmdUI) 

              pCmdUI-> Enable(m_bool); 
    }
      

  5.   

    你先设一个全局变量,BOOL UINT 等等都可以,当你第一次右键点击或左键点击会响应菜单,这时把这个变量置成一个特定的值并使用CMenu 类中的EnableItem(FALSE).当窗口被销毁时在把那个变量置回来就可以了.你在点击事件中可以通过这个变量来判断到底是要EnableItem(FALSE),还是EnableItem(TRUE).切记不要轻易在别的地方使用这个CMenu对象,可能会导致BUG