Hi, I have many check boxes in a list control.My problem is to uncheck the check box if there is a check box already checked.How can i do??..I tried doing the below but it checks the first check box and unchecks the others. Code: void SomeClass::OnCheckboxChanged ( NMHDR* pNMHeader, LRESULT* pResult ) { func(); } bool SomeClass::func (void) { CListCtrl* a_pStatus = (CListCtrl*) GetDlgItem(IDC_DLG_FWUPDATE); OC_ULong_t a_NoChecked=0; for(OC_ULong_t a_Index=0;a_Index<a_pStatus->GetItemCount() ;a_Index++) { // See if the check was selected if(a_pStatus->GetItemState(a_Index,LVIS_STATEIMAGEMASK) == INDEXTOSTATEIMAGEMASK(2)) { a_NoChecked++; if(a_NoChecked>1) a_pStatus->SetCheck(a_Index,false); } } //if(a_NoChecked==1) // return true; //else //return false; return true; }