在Document/View的MFC程序中,要想改变工具栏上图标的状态并不是光设置了状态就会起作用的。事实上MFC会调用ON_UPDATE_COMMAND_UI的消息来确定工具栏上图标的状态,所以需要映射这个消息的处理函数,然后在其中修改图标状态。
Example:
ON_UPDATE_COMMAND_UI(IDT_START_DEBUG, OnUpdateToolBarUI)
void CMainFrame::OnUpdateToolBarUI( CCmdUI* pUI )
{
switch(m_state.state)
{
case 0:
case 1:
pUI->Enable(TRUE);
break;
case 2:
pUI->Enable(TRUE);
break;
case 3:
pUI->Enable(FALSE);
break;
}
}