我做了一个checkbox的数组:
CButton m_chcheck[32];
然后初始化:
CString ch;
for(i=0;i<32;i++){
  ch.Format("%d",i+1);          m_chcheck[i].Create(ch,BS_CHECKBOX|WS_VISIBLE|WS_CHILD,rect,this,IDC_CHECK1);      
}IDC_CHECK1 是我已经有了的一个控件的ID,但我试了一些其他的值也是一样
就是无发选中。不知道为啥

解决方案 »

  1.   

    设置STYLE为:
    BS_AUTOCHECKBOX
      

  2.   

    应该把他们的ID定义成一个ID数组
    你现在所有的控件都是一个id.
      

  3.   

    另外BS_AUTOCHECKBOX也是必须的!
      

  4.   

    m_chcheck[i].Create(ch,BS_CHECKBOX|BS_AUTOCHECKBOX|WS_VISIBLE|WS_CHILD,rect,this,IDC_CHECK1+i)
      

  5.   

    的确是BS_AUTOCHECKBOX的问题,,请问对于checkbox的数组都使用同一个ID有什么问题么?
      

  6.   

    加上
    BS_AUTOCHECKBOX
    同一ID不会有什么大问题,但是当你点击不同的box,只是相当于点击同一个box.
      

  7.   

    那为什么只有一个box被选中,而不是所有的??
      

  8.   

    你把楼上几位的回答仔细看一下你就明白为什么只有一个box被选中,而不是所有的每一个空间都有一个唯一的标示在程序里,我们用这个来区分时那个控件和对其操作,如果一样就会发生冲突,不知道控制那个控件。