【问题标题】:State of button controlled by a check-box复选框控制的按钮状态
【发布时间】:2010-11-16 21:58:37
【问题描述】:

我有一个带有复选框和按钮的对话框。我想根据复选框的状态启用/禁用按钮。 我已经尝试使用 ON_UPDATE_COMMAND_UI 来实现这一点:

...
DDX_Check(pDX, IDC_CHECK1, bFlag);
...
ON_UPDATE_COMMAND_UI(IDC_BUTTON1, OnUpdateButton1)
...
void ColorDialog::OnUpdateButton1(CCmdUI* pCmdUI)
{
    pCmdUI->Enable(bFlag);
}

但是什么也没发生。选中/取消选中复选框对按钮没有任何作用。
我在这里做错了什么?

【问题讨论】:

    标签: user-interface mfc


    【解决方案1】:

    ON_UPDATE_COMMAND_UI 仅与菜单项和工具栏按钮相关。您必须将 ON_BN_CLICKED 添加到您的消息映射中。

    【讨论】:

    • 那是ON_BN_CLICKED(IDC_CHECK1, ...),而不是ON_BN_CLICKED(IDC_BUTTON1, ...)
    【解决方案2】:

    为复选框单击添加一个事件处理程序,您可以在其中调用

    UpdateData(TRUE);
    pButton->EnableWindow(bFlag);
    

    这应该可以解决问题。

    【讨论】:

      猜你喜欢
      • 2015-12-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-28
      • 1970-01-01
      • 2021-07-01
      • 2011-08-02
      • 2011-07-01
      相关资源
      最近更新 更多