我在MFC应用程序中有一个对话框,它有菜单栏。现在,我使用菜单栏中的相同命令ID在该对话框中创建了一个工具栏。
我用来更新菜单项的状态,并按照ON_UPDATE_COMMAND_UI
中的某些签入启用/禁用,当我点击菜单时。但对于工具栏,我没有得到这些调用来更新它的状态,如果应该启用/禁用它。
此外,当测试失败时我没有任何通知,我要禁用该项目。
这样做有其他选择吗?
由于
只有当我点击工具栏按钮时才会调用ON_UPDATE_COMMAND_UI
。
答案 0 :(得分:1)
在对话框中使用MFC会令人沮丧。
我建议您在将状态更改为启用/禁用菜单的变量时直接禁用工具栏按钮:
void CtestDlg::OnBnClickedButton_DisableSomeControls()
{
command_menu_1 = !command_menu_1;
m_ToolBar.GetToolBarCtrl().EnableButton(ID_COMMAND_TEST, command_menu_1);
}
不是很优雅,但它有效!