CToolBar* pToolBar = (CToolBar*) GetParentFrame()->GetControlBar(AFX_IDW_TOOLBAR) ;
CToolBarCtrl* pToolBarCtrl = &pToolBar->GetToolBarCtrl();
pToolBarCtrl->EnableButton(ID_TEST, TRUE);如上代码,不能将按钮ID_TEST启用。
通过调试,EnableButton()是正确执行了,但由于OnUpdateCmdUI()在后台又将它恢复原状了,请教不通过OnUpdateCmdUI(),如何正确的设置按钮状态。对了,别说m_bAutoMenuEnable=FALSE;这只对菜单有效。
另外,CToolBar继承于CControlBar, 而CControlBar重载了OnUpdateCmdUI()。

解决方案 »

  1.   

    可以试一试下面的方法
    GetDlgItem(资源号)-〉EnalbeWindow(FALSE);
      

  2.   

    Toolbar按钮的Enable和Disable应该在OnUpdateCmdUI()中设置,
    这个函数就是为干这个才提供的
      

  3.   

    我想通过EnableButton()来实现,而不是通过OnUpdateCommandUI();(核桃)说的方法,我想也不行,因为EnableButton()也是实现了它的功能,不过被idle调用OnUpdateCommandUI()覆盖了。