【问题标题】:GetCheck() working for check buttons but not radio buttons?GetCheck() 适用于检查按钮但不适用于单选按钮?
【发布时间】:2013-01-11 20:38:54
【问题描述】:

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

据我所见on msdn's website,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

什么给了?

【问题讨论】:

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

标签: c++ visual-studio-2010 mfc


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-05-17
    • 2011-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-29
    • 1970-01-01
    • 2020-03-15
    相关资源
    最近更新 更多