GetCheck()适用于复选按钮,但不适用于单选按钮



我正在学习如何在Visual Studio 2010中使用MFC制作对话框。

从我在msdn的网站上看到的,GetCheck()函数应该对复选框和单选按钮工作相同。

基本上我有两个单选按钮在两个滑块旁边。如果一个单选按钮打开,则该滑动条被禁用,如果另一个单选按钮打开,则另一个滑动条被禁用。

当我把单选按钮换成复选框时,我使用的代码是:

void Cstring_copyierDlg::OnBnClickedSld1chk()
{
    UINT nCheck = m_slide1check.GetCheck();
    if(nCheck == BST_CHECKED){
        m_slider.EnableWindow(FALSE);
    }
    else{
        m_slider.EnableWindow(TRUE);
    }

}

void Cstring_copyierDlg::OnBnClickedSld2chk()
{
    UINT nCheck = m_slide2check.GetCheck();
    if(nCheck == BST_CHECKED){
        m_slider2.EnableWindow(FALSE);
    }
    else{
        m_slider2.EnableWindow(TRUE);
    }

}

这段代码运行良好。但是当我把复选框换成单选按钮时,我使用的代码是:

void Cstring_copyierDlg::OnBnClickedRad1()
{
    UINT nCheck = m_radio1.GetCheck();
    if(nCheck == BST_CHECKED){
        m_slider.EnableWindow(FALSE);
    }
    else{
        m_slider.EnableWindow(TRUE);
    }

}

void Cstring_copyierDlg::OnBnClickedRad2()
{
    UINT nCheck = m_radio2.GetCheck();
    if(nCheck == BST_CHECKED){
        m_slider2.EnableWindow(FALSE);
    }
    else{
        m_slider2.EnableWindow(TRUE);
    }

}

但是第二段代码在编译时返回以下错误:
error C2228: left of '.GetCheck' must have class/struct/union

给了什么?

您在添加变量向导中为DDX选择了错误的变量类型。您应该在那里选择控件类型。

要手动更改变量类型,请将m_radio1的类型替换为CButton,并将DoDataExchange中的DDX_Radio替换为DDX_Control。

相关内容

  • 没有找到相关文章

最新更新