我在 MFC 应用程序中有一个对话框,它有菜单栏。现在,我使用菜单栏中的相同命令 ID 在该对话框中创建了一个工具栏。
我用来更新菜单项的状态,并根据某些签入启用/禁用它ON_UPDATE_COMMAND_UI
,当我单击菜单时。但是对于工具栏,我没有收到这些调用来更新它的状态,如果它应该被启用/禁用。
此外,当测试失败并且我禁用该项目时,我没有任何通知。
有没有其他方法可以做到这一点?
谢谢
ON_UPDATE_COMMAND_UI
只有当我单击工具栏按钮时才会调用。
我在 MFC 应用程序中有一个对话框,它有菜单栏。现在,我使用菜单栏中的相同命令 ID 在该对话框中创建了一个工具栏。
我用来更新菜单项的状态,并根据某些签入启用/禁用它ON_UPDATE_COMMAND_UI
,当我单击菜单时。但是对于工具栏,我没有收到这些调用来更新它的状态,如果它应该被启用/禁用。
此外,当测试失败并且我禁用该项目时,我没有任何通知。
有没有其他方法可以做到这一点?
谢谢
ON_UPDATE_COMMAND_UI
只有当我单击工具栏按钮时才会调用。
Use MFC in a dialog can be frustrating.
I suggest you disable the toolbar button directly when changing state to the variable that will enable / disable the menu:
void CtestDlg::OnBnClickedButton_DisableSomeControls()
{
command_menu_1 = !command_menu_1;
m_ToolBar.GetToolBarCtrl().EnableButton(ID_COMMAND_TEST, command_menu_1);
}
is not very elegant, but it works!