是否存在控制中的错误?或者我做错了什么?
在.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);
}
点击按钮,我需要按下按钮,当用户再次点击时,按钮会被按下。
单击按钮没有任何反应:(
答案 0 :(得分:0)
只需为特定项创建一个ON_UPDATE_COMMAND处理程序。 使用pCmdUI-> SetCheck来指示向下或向上状态。
MFC永远不会直接更新工具栏和菜单。他们要求框架更新按钮和菜单项的状态。
答案 1 :(得分:0)
您的说明表明您希望按钮具有“复选框”的行为。如果这是正确的,请确保为按钮样式指定 TBBS_CHECKBOX 。每次按下按钮时,您都不需要手动处理渲染复选框状态。