我正在使用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:其他操作如取消停靠/停靠/移动可以正常工作。