C++ GetCheck()用于检查按钮,但不用于单选按钮?
我正在学习在VisualStudio2010中使用MFC制作对话框 在我看来,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
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编程。