在MFC对话框中启用按钮

时间:2014-10-05 17:28:07

标签: mfc

我有两个按钮:

  1. 单选按钮:" Hex"
  2. 按钮:" A"
  3. 我想启用" A"任何时候用户" Hex"按钮被选中(" A"是"禁用"当它被创建时),我该怎么做?谢谢大家。

    The Calculator MFC Application

3 个答案:

答案 0 :(得分:5)

您需要使用CButton's EnableWindow功能。

buttonA.EnableWindow( TRUE );

如果您没有CButton对象,可以通过调用GetDlgItem及其ID来访问该按钮:

GetDlgItem( IDC_BUTTON_A ).EnableWindow( TRUE );

答案 1 :(得分:2)

您应该使用ON_UPDATE_COMMAND_UI机制来启用/禁用“A'或对话框中的任何其他按钮。默认情况下,它不适用于基于对话框的应用程序,但您可以按照article

轻松启用它们

更新功能中的代码如下所示:

void CCalculatorDlg::OnUpdateButtonA(CCmdUI* pCmdUI)
{
        if( m_ctrlBtnHex.GetCheck() == BST_CHECKED )
        {
            pCmdUI->Enable( TRUE );
        }
        else
        {
            pCmdUI->Enable( FALSE );
        }
}

在你的情况下,因为A,B,C,D,E,F基本上具有相同的状态,所以你可以这样做:

void CCalculatorDlg::OnUpdateButtonA(CCmdUI* pCmdUI)
{
        if( m_ctrlBtnHex.GetCheck() == BST_CHECKED) )
        {
            m_ctrlBtnA.EnableWindow( TRUE );
            m_ctrlBtnB.EnableWindow( TRUE );
            m_ctrlBtnC.EnableWindow( TRUE );
            // so on...
        }
        else
        {
            m_ctrlBtnA.EnableWindow( FALSE );
            m_ctrlBtnB.EnableWindow( FALSE );
            m_ctrlBtnC.EnableWindow( FALSE );
            // so on...
        }
}

答案 2 :(得分:0)

NameOfYourButton.EnableWindow( TRUE );