MFC:CMFCToolBar SetButtonStyle 不与样式TBBS_PRESSED一起旋转

MFC: CMFCToolBar SetButtonStyle not wirking with style TBBS_PRESSED?

本文关键字:TBBS PRESSED 一起 旋转 样式 CMFCToolBar SetButtonStyle MFC      更新时间:2023-10-16

by控制中有错误吗? 还是我做错了什么?

在 .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 从不直接更新工具栏和菜单。它们要求框架更新按钮和菜单项的状态。

您的说明表明您希望按钮具有"复选框"的行为。 如果正确,请确保为按钮样式指定TBBS_CHECKBOX。 您不需要在每次按下按钮时手动处理复选框状态的呈现。