因为有BS_OWNERDRAW所以GetCheck得到的值总是0。所以我在CMyRadioButton中设一BOOL m_gbChecked,重载了SetCheck(BOOL bChecked)this->m_gbChecked = bChecked;
GetCheck() return this->m_gbChecked。这个做法在CheckBox中是正确的,但就是因为同组radioButton中,只能有一个被checked=TRUE。GetNextDlgItemGroup用不了。
关键就是我不知道在某个m_radioX实例中得到同组其它的radio的HWND,这样我就可以radioXWnd->SetCheck(FALSE)了。

解决方案 »

  1.   


    CMyRadioButton::SetCheck(BOOL bChecked)
    {
      CMyRadioButton *pWndRadio = NULL;
      do 
      {
       pWndRadio = (CMyRadioButton*)GetNextDlgGroupItem(NULL, FALSE);
       //可不可以这样得同组RADIOBUTTON的各个WND
      }
      while(pWndRadio!=NULL);
    }
      

  2.   

    我原也这样想,但是如果不在CMyRadioButton中“自动”处理的话,在DLG中处理的话,太麻烦了,变更其中一个RADIO就要同时用代码改变其它的RADIO,如果数量大的话,更不好了。