控制中是否存在错误?还是我做错了什么?
在.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;
else
nState |= TBBS_PRESSED;
m_wndToolBar.SetButtonStyle(nIndex,nState);
m_wndToolBar.InvalidateButton(nIndex);
}
通过单击按钮,我需要将按钮设置为按下,然后当用户再次单击时,按钮变为未按下状态。
单击按钮没有任何反应:(
最佳答案
只需为特定项目创建一个ON_UPDATE_COMMAND处理程序即可。
使用pCmdUI-> SetCheck发出向下或向上状态信号。
MFC永远不会直接更新工具栏和菜单。他们要求框架更新按钮和菜单项的状态。