Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/162.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ GetCheck()用于检查按钮,但不用于单选按钮?_C++_Visual Studio 2010_Mfc - Fatal编程技术网

C++ GetCheck()用于检查按钮,但不用于单选按钮?

C++ GetCheck()用于检查按钮,但不用于单选按钮?,c++,visual-studio-2010,mfc,C++,Visual Studio 2010,Mfc,我正在学习在VisualStudio2010中使用MFC制作对话框 在我看来,GetCheck()函数对复选框和单选按钮的作用应该是相同的 基本上,我有两个单选按钮旁边的两个滑块。如果一个单选按钮处于启用状态,则该滑块将被禁用;如果另一个单选按钮处于启用状态,则另一个滑块将被禁用 当我关闭复选框的单选按钮时,我使用的代码是: void Cstring_copyierDlg::OnBnClickedSld1chk() { UINT nCheck = m_slide1check.GetCh

我正在学习在VisualStudio2010中使用MFC制作对话框

在我看来,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::OnBnClickedRad1()
{

    UINT nCheck = m_radio1.GetCheck();

    if(nCheck == BST_CHECKED){
        m_slider.EnableWindow(FALSE);
    }
    else{
        m_slider.EnableWindow(TRUE);
    }
}

}

这个代码运行良好。但当我关闭单选按钮的复选框时,我使用了以下代码:

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::OnBnClickedRad1()
{

    UINT nCheck = m_radio1.GetCheck();

    if(nCheck == BST_CHECKED){
        m_slider.EnableWindow(FALSE);
    }
    else{
        m_slider.EnableWindow(TRUE);
    }
}

}

但是,第二段代码在编译时返回以下错误:

error C2228: left of '.GetCheck' must have class/struct/union

给出了什么?

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


要手动更改变量类型,请在DoDataExchange中将m_radio1的类型替换为CButton,并将DDX_radio1替换为DDX_控件。

m_radio1的类型是什么
m_radio1
?我不太确定它是什么类型,但要创建m_radio1,我按住Ctrl键并双击单选按钮,将“变量名称:”设置为m_radio1。Idk默认情况下是什么类型。Visual Studio带回了MFC类向导。如果按[Ctrl]+[Shift]+X,将弹出一个对话框,其中包含您需要的所有信息。从“类名”组合框中选择对话框/视图类,然后单击“成员变量”选项卡。这将帮助您识别
m_radio1
的类型。与您的问题无关,我不建议使用MFC启动Windows开发。浏览自动生成的代码并不能提供所需的洞察力。从本质上讲,如果您从MFC开始,您将跳过一个强制性的学习体验:普通的Win32 API编程。