| 
 | |||||||
| 
 | 
|  | 
|  | 
|  | Strumenti | 
|  23-10-2008, 18:22 | #1 | 
| Junior Member Iscritto dal: Sep 2006 
					Messaggi: 26
				 | 
				
				[C++] "Indicizzare" le checkbox
			 
		Ecco il mio problema, all'interno di una GroupBox ho una serie di CheckBox che nel mio programma indicano i mesi dell'anno  io dovrei andare a controllare quali di queste 12 CheckBox sono spuntate e se ne trovo una che lo è devo scrivere in un array di interi alla posizione del mese (gennario 0, febbraio 1 ecc..) 1, altrimenti 0. certo, potrei fare il controllo una ad una per dodici volte in questo modo: Codice:   
    //checkbox1
     if (CheckBox1->Checked==true)
     a.dispo[0]=1;
     else
     a.dispo[0]=0;
      //checkbox2
     if (CheckBox2->Checked==true)
     a.dispo[1]=1;
     else
     a.dispo[1]=0;
     ecc.. ecc...grazie in anticipo. | 
|   |   | 
|  23-10-2008, 18:28 | #2 | |
| Bannato Iscritto dal: Mar 2008 Città: Villabate(PA) 
					Messaggi: 2515
				 | Quote: 
 io invece, trattandosi di pochi elementi, direi che va bene così. Se fossero una cinquantina di checkboxes, allora si: potresti gestire la cosa con un array di puntatori a CButton. Ultima modifica di Vincenzo1968 : 23-10-2008 alle 18:30. | |
|   |   | 
|  23-10-2008, 18:34 | #3 | |
| Junior Member Iscritto dal: Sep 2006 
					Messaggi: 26
				 | Quote: 
 preferirei impararlo ora piuttosto che trovarmi un domani con lo stesso problema   | |
|   |   | 
|  23-10-2008, 18:44 | #4 | 
| Bannato Iscritto dal: Mar 2008 Città: Villabate(PA) 
					Messaggi: 2515
				 | 
		Allora invece di dichiarare dodici oggetti CButton nella classe che gestisce la finestra di dialogo, dichiara un array di dodici puntatori di tipo CButton: Codice: CButton * m_arrayCheckBoxesMesi[12]; Codice: m_arrayCheckBoxesMesi[0] = (CButton*)GetDlgItem(IDC_CHECK1); m_arrayCheckBoxesMesi[1] = (CButton*)GetDlgItem(IDC_CHECK2); m_arrayCheckBoxesMesi[2] = (CButton*)GetDlgItem(IDC_CHECK3); ... m_arrayCheckBoxesMesi[11] = (CButton*)GetDlgItem(IDC_CHECK12); Codice: for(int k = 0; k < 12; k++)
    a.dispo[k] = m_arrayCheckBoxesMesi[k]->GetCheck() == BST_CHECKED ? 1 : 0;Ultima modifica di Vincenzo1968 : 23-10-2008 alle 19:36. | 
|   |   | 
|  23-10-2008, 19:04 | #5 | 
| Bannato Iscritto dal: Feb 2005 Città: Roma 
					Messaggi: 7029
				 | |
|   |   | 
|  24-10-2008, 10:31 | #6 | 
| Senior Member Iscritto dal: Oct 2005 
					Messaggi: 3306
				 | 
		Ma perchè non usare l'evento click sulle checkbox? In questo modo hai lo stato sempre aggiornato. | 
|   |   | 
|   | 
| Strumenti | |
| 
 | 
 | 
Tutti gli orari sono GMT +1. Ora sono le: 05:40.









 
		 
		 
		 
		


 
		





 
  
 



 
                        
                        










