更新工具栏按钮状态 MFC
Posted
技术标签:
【中文标题】更新工具栏按钮状态 MFC【英文标题】:Updating toolbar button state MFC 【发布时间】:2012-07-06 07:36:03 【问题描述】:我在 MFC 应用程序中有一个对话框,它有菜单栏。现在,我使用菜单栏中的相同命令 ID 在该对话框中创建了一个工具栏。
我用来更新菜单项的状态,并根据ON_UPDATE_COMMAND_UI
中的某些检查使其启用/禁用,当我单击菜单时。但是对于工具栏,我没有收到这些调用来更新它的状态,如果它应该被启用/禁用。
此外,当测试失败并且我禁用该项目时,我没有任何通知。
有没有其他方法可以做到这一点?
谢谢
只有当我点击工具栏按钮时才会调用ON_UPDATE_COMMAND_UI
。
【问题讨论】:
【参考方案1】:在对话框中使用 MFC 可能会令人沮丧。
我建议您在将状态更改为将启用/禁用菜单的变量时直接禁用工具栏按钮:
void CtestDlg::OnBnClickedButton_DisableSomeControls()
command_menu_1 = !command_menu_1;
m_ToolBar.GetToolBarCtrl().EnableButton(ID_COMMAND_TEST, command_menu_1);
不是很优雅,但是很管用!
【讨论】:
这对我来说感觉一样。即使在我的情况下,对话框也是无模式的,所以即使我也无法使用 KICKIDLE 来做到这一点,因为这是我第一次使用空闲时间的东西。此外,它是一个遗留代码,不仅有一个变量的更新禁用/启用工具栏的按钮,而且还有很多检查。以上是关于更新工具栏按钮状态 MFC的主要内容,如果未能解决你的问题,请参考以下文章