我昨天还遇到这个问题,没有办法。老老实实用updatecmdui吧。

解决方案 »

  1.   

    UINT iButtonID;
    UINT iButtonStyle;
    int iButtonImage;int iButtonIndex = pTool->CommandToIndex(ID_TOUCOUNTQUERY);
    pTool->GetButtonInfo(iButtonIndex, iButtonID, iButtonStyle, iButtonImage);
    iButtonStyle ¦= TBBS_DISABLED;
    pTool->SetButtonInfo(iButtonIndex, iButtonID, iButtonStyle, iButtonImage); 
      

  2.   

    TBBS_DISABLED没用的,你试过吗?
    不信你做个例子试试
      

  3.   

    To tony1978:你有空做个例子给我吗?
    我的MAIL:[email protected]
    万分感谢!
      

  4.   

    嘿,这样就行了:
    m_toolbar.ModifyStyle(..);//参数自己查,可以修改任何属性
    //然后
    m_toolbar.SendMessage(WM_SIZE);
      

  5.   

    iButtonStyle &= TBBS_DISABLED;
      

  6.   

    TO lixiongfeng:
    能否详细点
      

  7.   

    To lixiongfeng
    ModifyStyle修改的是整个Toolbar的状态,而不是某一个按钮。
      

  8.   

    我的程序经过大型项目的考验的  :)
    没有办法才这样做的,因为项目原因,UpdateComdUI不好用了。
      

  9.   

    对不起,写错了:
    iButtonStyle |= TBBS_DISABLED;
    或者
    iButtonStyle &= !TBBS_DISABLED;
    分别是Disable和Enable
      

  10.   

    to tony1978:不好意思,真的不行是不是还要设置些什么?我查MSDN上没有TBBS_DISABLED属性,改成TBBS_SEPARATOR到是可以
      

  11.   

    TO tony1978:
    我程序如下,请帮我看看,谢谢!
    CMainFrame *pMainFrame = (CMainFrame*)AfxGetApp()->m_pMainWnd;
    CWnd* pMain = AfxGetMainWnd(); 
    CToolBar* pTool;
    pTool=&(pMainFrame->m_wndToolBar);//得到工具条
    UINT iButtonID;
    UINT iButtonStyle;
    int iButtonImage;
    int iButtonIndex;
    if(!(limit&1))//0位权限判断,统计查询权限
    {
    iButtonIndex = pTool->CommandToIndex(ID_TOUCOUNTQUERY);
    pTool->GetButtonInfo(iButtonIndex, iButtonID, iButtonStyle, iButtonImage);
    iButtonStyle |= TBBS_DISABLED;
    pTool->SetButtonInfo(iButtonIndex, iButtonID, iButtonStyle, iButtonImage); 
    }
      

  12.   

    TO Gu_c_h:不会的.我灰化菜单是可以的,就是工具条按钮不可以。
    而突击召唤师说他提供的方法是可以的,但我查MSDN没有他所说的TBBS_DISABLE风格,换成
    TBBS_SEPERATOR到是可以的。所以我想是不是还有那里没设置好,比如什么常量等