toolbar有三个按钮。
 在toolbar上按一个按钮后让它disable,另外两个变enable.

解决方案 »

  1.   

    http://community.csdn.net/Expert/FAQ/FAQ_Index.asp?id=195111
      

  2.   

    分别对这后二个按钮响应ON_UPDATE_COMMAND_UI的消息
    pCmdUI->Enable(fFirstbuttonPressed);
      

  3.   

    在各个按纽的update事件和单击事件中增加控制就可以了,如下void CMyView::OnUpdateMenu1(CCmdUI* pCmdUI) 
    {
    // TODO: Add your command update UI handler code here
    pCmdUI->Enable(!(m_bMenu2 || m_bMenu3));
    }
    void CMyView::OnMenu1() 
    {
    m_bMenu1=true;
             m_bMenu2=false;
             m_bMenu3=false;
    }
    其他几个函数雷同!
      

  4.   

    哦,代码写反了!
    pCmdUI->Enable(!(m_bMenu2 || m_bMenu3));
    改成
    pCmdUI->Enable(m_bMenu2 || m_bMenu3);
      

  5.   

    可能我说得不是很清楚,
    是要按下按钮后,让它disable, 其他两个enable.
    所有说是要动态实现的。
    觉得好像在一个事件下写控制三个按钮的代码吧。
      

  6.   

    某个ON_UPDATE_COMMAND_UI的事件下
    如何方可控制其它按钮的状态,这才是我要问的关键。
      

  7.   

    CMainFrame* pMain = (CMainFrame*) AfxGetMainWnd();
        a=pMain->m_wndToolBar.GetToolBarCtrl().EnableButton(ID_SEARCH2,FALSE);
        a=pMain->m_wndToolBar.GetToolBarCtrl().EnableButton(ID_SEARCH3,FALSE);
        a=pMain->m_wndToolBar.GetToolBarCtrl().EnableButton(ID_SEARCH1,FALSE);
        AfxMessageBox("DFK");我把这代码放在ID的COMMAND消息是可以用的,弹出对MSGBOX时, button 是 disable,
    可是 确定之后就button is enalbe。
    若把代码放在ON_UPDATE_COMMAND_UI下,和放在command一样的情况。