【问题标题】:Updating toolbar button state MFC更新工具栏按钮状态 MFC
【发布时间】:2012-07-06 07:36:03
【问题描述】:

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

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

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

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

谢谢

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

【问题讨论】:

    标签: visual-c++ mfc toolbar


    【解决方案1】:

    在对话框中使用 MFC 可能会令人沮丧。

    我建议您在将状态更改为将启用/禁用菜单的变量时直接禁用工具栏按钮:

    void CtestDlg::OnBnClickedButton_DisableSomeControls()
    {
    command_menu_1 = !command_menu_1;
    m_ToolBar.GetToolBarCtrl().EnableButton(ID_COMMAND_TEST, command_menu_1);
    }
    

    不是很优雅,但是很管用!

    【讨论】:

    • 这对我来说感觉一样。即使在我的情况下,对话框也是无模式的,所以即使我也无法使用 KICKIDLE 来做到这一点,因为这是我第一次使用空闲时间的东西。此外,它是一个遗留代码,不仅有一个变量的更新禁用/启用工具栏的按钮,而且还有很多检查。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-15
    • 2013-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多