记忆当中好像是可以循环控件连续的ID来做的,但是我不会
高手帮我看看如果要实现象下面的功能应该怎么做:
for(i = 1;i <= 8;i++)
{
    判断CHECK_ID(i)
    IF(CHECK_ID(i)选中)
    {}
    else
    {}
}

解决方案 »

  1.   

    UINT nID[8];
    for(int n=0; n<8; n++)
    {
    CButton* pBtn = (CButton*)GetDlgItem(nID[n]);
    if(pBtn->GetCheck()==BST_CHECKED) //选中
    {
    //...
    }
    else
    {
    //...
    }
    }
      

  2.   

    把8个CheckBox的ID放在1个数组里面 long arrIDs[8] = {XX,XX,XX.......};
    用循环来判断哪些选中了for(i = 0;i < 8;i++)
    {
        if( BST_CHECKED == ((CButton *)GetDlgItem(IDC_CHECK_DISCLOSURE))->GetCheck() )
    {
    //选中;
    else
    {
    //未选中;
    }
    }
      

  3.   

    回:SoLike(思危)
    如果我的CHECK控件名字从CHECK1~CHECK8,那你方法里的UINT nID[8];是否就是我这八个控件的ID呢,如果是的话你的是从nID[0]开始的,我的是从CHECK[1]开始的不匹配啊,而且我运行也有错误
    aiguo26的  if( BST_CHECKED == ((CButton *)GetDlgItem(IDC_CHECK_DISCLOSURE))->GetCheck() )这句话及整个程序里都没看到long arrIDs[8],你怎么做的?
      

  4.   

    如果你的CHECK1~CHECK8的ID是连续的,则可以这样取:UINT unID = ID_CHECK1; //第一个
    for(int nInd = 0; nInd < 8; ++nInd)
      GetDlgItem(unID++);
      

  5.   

    假设你的ID为CHECK1 - CHECK8,且为连续for(int n=0; n<8; n++)
    {
    CButton* pBtn = (CButton*)GetDlgItem(CHECK1+n);
    if(pBtn->GetCheck()==BST_CHECKED) //选中
    {
    //...
    }
    else
    {
    //...
    }
    }