分享

MFC中单选框和复选框的选择

 冰晨之心 2012-09-11
单选钮用来表示一系列的互斥选项,这些互斥项常常被分成若干个组,每组仅允许用户选择一个选项;复选框与单选按钮相象,不同之处是复选框代表多重选择,用户可以选择一个或多个选项。
为了方便说明,我们假定创建了基于对话框的MFC应用程序,第一个组框为"分数",内有四个单选按钮:"100","90","80","70".ID分别为IDC_RADIO1,IDC_RADIO2,IDC_RADIO3,IDC_RADIO4;IDC_RADIO1的Group属性为TRUE.第二个组框为"加权",内有四个复选按钮:"10","9","8","7",ID分别为IDC_CHECK1,IDC_CHECK2,IDC_CHECK3,IDC_CHECK4;IDC_CHECK1的Group属性为TRUE.
判断哪个单选按钮按下:第一种方式:给IDC_RADIO1关联一个int型变量m_radio,首先调用UpdateData(TRUE);然后判断IDC_RADIO1的值
                           switch(m_radio)
                            {
                                   case 0:
                                            MessageBox(_T("100"));
                                            break;
                                   case 1:
                                            MessageBox(_T("90"));
                                            break;
                                   case 2:
                                            MessageBox(_T("80"));
                                            break;
                                   case 3:
                                            MessageBox(_T("70"));
                                            break;
                            }
          第二种方式:
                            switch(GetCheckedRadioButton(IDC_RADIO1,IDC_RADIO4))
                            {
                                   case IDC_RADIO1:
                                            MessageBox(_T("100"));
                                            break;
                                   case IDC_RADIO2:
                                            MessageBox(_T("90"));
                                            break;
                                   case IDC_RADIO3:
                                            MessageBox(_T("80"));
                                            break;
                                   case IDC_RADIO4:
                                            MessageBox(_T("70"));
                                            break;
                            }
判断哪些复选按钮按下:第一种方式:给IDC_CHECK1~IDC_CHECK4分别关联一个BOOL型变量m_check1~m_check4,首先调用UpdateData(TRUE);然后判断各个变量的值;
                              if(m_check1==TRUE)
                                         str+="10";
                              if(m_check2==TRUE)
                                         str+="9";
                              if(m_check3==TRUE)
                                         str+="8";
                              if(m_check4==TRUE)
                                         str+="7";
                              MessageBox(str);
         第二种方式:给IDC_CHECK1~IDC_CHECK4分别关联一个CButton型变量m_check1~m_check4判断各个变量的值;
                              if(m_check1.GetCheck()==1)
                                         str+="10";
                              if(m_check2.GetCheck()==1)
                                         str+="9";
                              if(m_check3.GetCheck()==1)
                                         str+="8";
                              if(m_check4.GetCheck()==1)
                                         str+="7";
                              MessageBox(str);
         第三种方式:利用GetDlgItem()函数
                              CButton *pBtn1=(CButton*)GetDlgItem(IDC_CHECK1);
                              CButton *pBtn3=(CButton*)GetDlgItem(IDC_CHECK2);
                              CButton *pBtn3=(CButton*)GetDlgItem(IDC_CHECK3);
                              CButton *pBtn4=(CButton*)GetDlgItem(IDC_CHECK4);
                              if(pBtn1->GetCheck()==1)
                              str+="10";
                              if(pBtn2->GetCheck()==1)
                              str+="9";
                              if(pBtn3->GetCheck()==1)
                              str+="8";
                              if(pBtn4->GetCheck()==1)
                              str+="7";
         第四种方法:利用IsDlgButtonChecked()函数
                              if(BST_CHECKED == IsDlgButtonChecked( IDC_CHECK1 ))
                                           str+="10";
                              if(BST_CHECKED == IsDlgButtonChecked( IDC_CHECK2 ))
                                           str+="9";
                              if(BST_CHECKED == IsDlgButtonChecked( IDC_CHECK3 ))
                                           str+="8";
                              if(BST_CHECKED == IsDlgButtonChecked( IDC_CHECK4 ))
                                           str+="7";
                              MessageBox(str);

                            

      



    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多