MFC - C ++ - CToolBar :: SetState(ID,TBSTATE_INDETERMINATE)

时间:2014-05-14 15:49:40

标签: c++ windows mfc

我正在使用MFC开发一个使用C ++的Windows应用程序。

我有一个工具栏,我想动态控制它。在MainFrame中,基于if else条件,我想禁用(灰色)或启用工具栏条目,这完全正常。即,当不满足条件时,工具栏条目(也是,保持)变灰。反过来也是如此(即只要条件满足,它就会再次启用)。到现在为止还挺好。

示例代码:为简洁起见,我没有包含MESSAGE_MAP or ONCOMMAND or the corresponding Action Functions工具栏条目。

在MainFrame.CPP

if(....) 
    m_wndToolBar.GetToolBarCtrl().SetState
        (ID_SIMULATION_START, TBSTATE_INDETERMINATE); 
else
    m_wndToolBar.GetToolBarCtrl().SetState
        (ID_SIMULATION_START, TBSTATE_ENABLED);

问题是,当我将鼠标移到工具栏条目上时,条目再次可见。如果我在灰色显示时单击这些条目,则会调用操作方法,我想避免这些方法。

PS:其他操作如取消停靠/停靠/移动可以正常工作。

0 个答案:

没有答案