CToolBarCtrld 类里有操作的函数,EnableButton()

解决方案 »

  1.   

    SetToolBarItemInfo()
    函数名记不清楚了
      

  2.   

    我用了CToolbarCtrl类中的EnableButton函数时,到能禁用和激活,但只是一闪就回到原来的状态了
      

  3.   

    ON_UPDATE_COMMAND_UI_RANGE( id1, id2, memberFxn )void memberFxn(UINT id, CCmdUI * pCmdUI )
    {
        if( m_bToolBarEnable )   // m_bToolBarEnable if a flag denote if the ToolBar is enable or not
           pCmdUI->Enable( TRUE ) ;
        else
           pCmdUI->Enable( FALSE ) ;
    }
      

  4.   

    接管该BUTTON的COMMAND_UI,只需要设置Enable或者Disable即可,绝对管用,我前几个月刚试成功。费了好几天时间才弄明白,上述方法也可以控制菜单的ENABLE/DISABLE
      

  5.   

    我有个例子,可以直接动态的对ToolBar进行改动(如添加一个按钮,删除一个按钮之类的)
    你的信箱告诉我,我发给你
      

  6.   

    欧阳锋:
        你好!怎样接管Button的COMMAND_UI,可否给出一点例子,望多加指点,谢谢!
      

  7.   

    欧阳锋:
        你好!怎样接管Button的COMMAND_UI,能否给一点代码看看!谢谢!
      

  8.   

    toolbar中的按钮和menu中相同ID的子菜单的可用/不可用状态时一样的
      

  9.   

    你只用控制菜单的enable/disable,工具栏状态会跟着变的
      

  10.   


    void CDandelionDlg::SetToolBarState()
    {
    CToolBarCtrl& TBCtrl=m_ToolBar.GetToolBarCtrl();
    int level=m_ftree.GetItemLevel(m_ftree.GetSelectedItem()),
    count=m_ftree.GetCount(); if(m_CurrentPlayNode)
    TBCtrl.EnableButton(IDM_CAPTURE);
    else
    TBCtrl.EnableButton(IDM_CAPTURE,FALSE); if(count<3){
    TBCtrl.EnableButton(IDM_EXPORT,FALSE);
    TBCtrl.EnableButton(IDM_CLEAR,FALSE);
    TBCtrl.EnableButton(IDM_FINDFILE,FALSE);
    }else{
    TBCtrl.EnableButton(IDM_EXPORT);
    TBCtrl.EnableButton(IDM_CLEAR);
    TBCtrl.EnableButton(IDM_FINDFILE);
    } if(level<1){
    TBCtrl.EnableButton(IDM_COPYFILE,FALSE);
    TBCtrl.EnableButton(IDM_DELETE,FALSE);
    }else{
    TBCtrl.EnableButton(IDM_COPYFILE);
    TBCtrl.EnableButton(IDM_DELETE);
    TBCtrl.EnableButton(IDM_SONGWORD);
    }
    if(level<=1)
    TBCtrl.EnableButton(IDM_SONGWORD,FALSE);
    else
    TBCtrl.EnableButton(IDM_SONGWORD);
    }
      

  11.   

    如果在视图框架类(CMainFrm)类中,直接用CToolBarCtrl的成员函数EnableButtona并不能禁用或激活控制栏的.
      

  12.   

    最近我在MSDN上找到一种方法,就是重载虚函数OnMsg(),如果nCode为CN_UPDATE_COMMAND_UI时,此时指针pExact就是CCmdUI指针,nID就是需要改变的菜单和控制栏按钮的标识!