不使用ON_UPDATE_COMMNAD_UI哈,用其它的办法!

解决方案 »

  1.   

    EnableMenuItem( UINT nIDEnableItem, UINT nEnable );EnableMenuItem(ID_FILE_OPEN,MF_BYCOMMAND|MF_GRAYED)用这个
      

  2.   

    用这个宏ON_COMMAND_RANGE和ON_UPDATE_COMMAND_UI_RANGE可以使工具栏上的按钮变灰一个或几个
    class CBView : public CView
    {.
     .
     .
     afx_msg void OnSelectType(UINT nID);
     afx_msg void OnUpdateSelectType(CCmdUI *pCmdUI);
     .
    }BEGIN_MESSAGE_MAP(CBView, CView)
    ON_COMMAND_RANGE(ID_BOTTON1,ID_BOTTON3,OnSelectType)
    ON_UPDATE_COMMAND_UI_RANGE(ID_BOTTON1,ID_BOTTON3,OnUpdateSelectType)
    END_MESSAGE_MAP()void CBView::OnSelectType(UINT nID)
    {
    }
    void CBView::OnUpdateSelectType(CCmdUI *pCmdUI)
    {
     int nID = pCmdUI->m_nID - ID_BOTTON1;
     if(1 == nID)//第二个按钮变灰
       pCmdUI->Enable(false);
     else
       pCmdUI->Enable(true);
    }
      

  3.   

    工具栏上的按钮灰化与否就是根据menu来判断的,所以只需把对应的menu item灰化即可
    或者调用CToolBarCtrl的EnableButton
      

  4.   

    GetDlgItem(ID_BUTTON1)->EnableWindow(FALSE);