|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#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. |
|
|
|
|
|
#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. |
|
|
|
|
|
|
#3 | |
|
Junior Member
Iscritto dal: Sep 2006
Messaggi: 26
|
Quote:
preferirei impararlo ora piuttosto che trovarmi un domani con lo stesso problema |
|
|
|
|
|
|
#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. |
|
|
|
|
|
#5 |
|
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
|
|
|
|
|
|
#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: 14:26.





















