2

我在 MFC 应用程序中有一个对话框,它有菜单栏。现在,我使用菜单栏中的相同命令 ID 在该对话框中创建了一个工具栏。

我用来更新菜单项的状态,并根据某些签入启用/禁用它ON_UPDATE_COMMAND_UI,当我单击菜单时。但是对于工具栏,我没有收到这些调用来更新它的状态,如果它应该被启用/禁用。

此外,当测试失败并且我禁用该项目时,我没有任何通知。

有没有其他方法可以做到这一点?

谢谢

ON_UPDATE_COMMAND_UI只有当我单击工具栏按钮时才会调用。

4

1 回答 1

1

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!

于 2012-07-07T17:10:09.023 回答