建立一个基于对话框的MFC工程文件,建立两个check控件、两个radio控件,一个文本编辑框,一个按钮控件,为两个check控件添加关联变量“m_c1”和“m_c2”,为文本编辑框关联变量“m_e”。
【Check Box】
Check Box控件是一个多选控件,首先添加两个Check Box控件到你的用户界面,用ClassWizard关联变量时发现这个控件的变量类型是BOOL型变量或者int型变量,那么我们就基本上了解这个控件的用法了,检查这个控件是否被按下的一个简单方法就是判断这个控件的虚拟变量值是TRUE(1)还是FLASE(0)。但是首先需要UpdateData(TRUE);
在按钮控件中添加如下代码:
UpdateData(TRUE);
if (m_c1==0 && m_c2 ==0)
m_e=1;
else if (m_c1==1 && m_c2 ==0)
m_e=2;
else if (m_c1==0 && m_c2 ==1)
m_e=3;
else if (m_c1 ==1 && m_c2 ==1)
m_e=4;
UpdateData(FALSE);
结果如下:
【初始值】 【按下按钮控件】
【选1】 【一起选】
【Radio Button】
这个按钮实现的目的和Check Box差不多但是不同的是Check Box控件是单选控件,在最终我们需要执行的消息响应函数中才检查这个选项是否被选中,而Radio Button是按下后,界面立即响应,执行这个按钮的消息响应函数,所以这个控件没有虚拟变量,而是直接为这个控件添加消息响应事件。
在对话框类的OnInitDialog中加入代码:
CheckRadioButton(IDC_RADIO1,IDC_RADIO2,NULL);
CheckRadioButton函数最多只能添加3个radio box控件,如果只想使用一个或两个,将后面的空间的ID号设为“NULL”即可
在按钮控件中添加如下代码:
int iRadioButton;
iRadioButton=GetCheckedRadioButton(IDC_RADIO1,IDC_RADIO2);
m_e=5; //两个控件都未选中,则为5
if(iRadioButton==IDC_RADIO1) //若选中控件1,则为6
{
//MessageBox("Click Button1");
m_e=6;
}
if(iRadioButton==IDC_RADIO2) //若选中控件2,则为7
{
// MessageBox("Click Button2");
m_e=7;
}
UpdateData(FALSE);
效果如下:
若想初始化选中按钮控件1,则在对话框类的OnInitDialog中刚才添加的代码下再加入代码:
((CButton *)GetDlgItem(IDC_RADIO1))->SetCheck(TRUE);//选上
效果如下:
参考链接:
https://blog.csdn.net/yiyefangzhou24/article/details/7193375/