控制中是否存在错误?还是我做错了什么?

在.h中CMFCToolBar m_wndToolBar;在消息图中ON_COMMAND(ID_MYID, &CMainFrame::OnToolBar)void CMainFrame::OnToolBar(){int nIndex = m_wndToolBar.CommandToIndex(ID_MYID);UINT nState = m_wndToolBar.GetButtonStyle(nIndex);if(nState & TBBS_PRESSED)nState &= ~TBBS_PRESSED;elsenState |= TBBS_PRESSED;m_wndToolBar.SetButtonStyle(nIndex,nState);m_wndToolBar.InvalidateButton(nIndex);}
通过单击按钮,我需要将按钮设置为按下,然后当用户再次单击时,按钮变为未按下状态。

单击按钮没有任何反应:(

最佳答案

只需为特定项目创建一个ON_UPDATE_COMMAND处理程序即可。
使用pCmdUI-> SetCheck发出向下或向上状态信号。

MFC永远不会直接更新工具栏和菜单。他们要求框架更新按钮和菜单项的状态。

10-04 18:03