检查框第一次单击是选中,第二次单击是不选中,怎么写?
日期:2007-01-31 荐:
检查框第一次单击是选中,第二次单击是不选中,怎么写?如题!谢谢为其映射BOOL型变量并绑定,在OnClick()中m_bChecked = !m_bChecked;前面的问题已解决,新的问题又出现了,两个RadioButton1和Radio Button2怎样使两个不成为一组,我现在一点Radio Button1Radio Button2也跟着变化了!搜索以前的帖子去,肯定有答案。我查过了,好象都是使成为一组。可我是使之不成为一组啊?我把group去掉了还是不行?用两个不同的变量来表示两个按钮应该可以的。全选Group都要设置Group属性group中只设第一个的我是想使两个Radio Button 互不影响呀,到底该怎么做?把我弄糊涂了!RadioButton1,和RadioButton2都设来GroupBOOL m_bChecked=FALSE;BOOL m_bChecked2=FALSE;void CYhDlg::OnRadio1() { m_bChecked= !m_bChecked; CButton *pButton2 = (CButton*)GetDlgItem(IDC_RADIO1);if (m_bChecked==TRUE){pButton2->SetCheck(1); AfxMessageBox("TRUE"); }else{ AfxMessageBox("FALSE"); pButton2->SetCheck(0);//很奇怪,这句放在AfxMessageBox("FALSE")前面,会弹出两次,为什么? }}void CYhDlg::OnRadio2() { m_bChecked2= !m_bChecked2; CButton *pButton2 = (CButton*)GetDlgItem(IDC_RADIO1);if (m_bChecked2==TRUE){//pButton2->SetCheck(1); AfxMessageBox("TRUE"); }else{AfxMessageBox("FALSE");pButton2->SetCheck(0);//这句执行后,总是选中状态}}1)点过RadioButton2后,RadioButton2就一直是选中状态了.2)而且点RadioButton2时,会把RadioButton的选中状态改为末选中.RadioButton1和RadioButton2都设Group就不是一组了。看你的代码,我都被你搞晕了,在你的OnRadio1中是CButton *pButton2 = (CButton*)GetDlgItem(IDC_RADIO1),你的OnRadio2中也是CButton *pButton2 = (CButton*)GetDlgItem(IDC_RADIO1),真不知道你这段代码到底有什么目的?是想使Radio1和Radio2只选其中之一吗?1)点过RadioButton2后,RadioButton2就一直是选中状态了. 这是因为在你的OnRaio2中CButton *pButton2 = (CButton*)GetDlgItem(IDC_RADIO1)这一句使得你操作的根本就是RadioButton1而不是RadioButton2,而且在你的OnRaio1中CButton *pButton2 = (CButton*)GetDlgItem(IDC_RADIO1)这一句使得操作的也是RadioButton1不是RadioBuuton2,所以选了RadioButton2之后它一直会是选中状态.2)而且点RadioButton2时,会把RadioButton的选中状态改为末选中. 这是因为在OnRadio2中操作的根本就是RadioButton1。这样改就行了。BOOL m_bChecked=FALSE;BOOL m_bChecked2=FALSE;void CYhDlg::OnRadio1() { m_bChecked= !m_bChecked; CButton *pButton1 = (CButton*)GetDlgItem(IDC_RADIO1);if (m_bChecked==TRUE){pButton1->SetCheck(0); AfxMessageBox("TRUE"); }else{ AfxMessageBox("FALSE"); pButton1->SetCheck(1); }}void CYhDlg::OnRadio2() { m_bChecked2= !m_bChecked2; CButton *pButton2 = (CButton*)GetDlgItem(IDC_RADIO2);if (m_bChecked2==TRUE){ pButton2->SetCheck(0); AfxMessageBox("TRUE"); }else{AfxMessageBox("FALSE");pButton2->SetCheck(1);}}谢谢,是我输错了不过还是有问题,当我把对话框最小化时,并没有点击RadioButton,它又弹出了AfxMssageBox,不知这是什么原因?不知哪位高手试过吗?
标签: