|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Member
Iscritto dal: Jul 2006
Città: Milano
Messaggi: 131
|
[Visual C++] Combo Box
salve ragazzi, ho un problema con la Combo Box di Visual C++, in pratica ho bisogno che ogni volta che seleziono un elemento del menù a tendina la variabile associata al menù (che ho scelto di tipo CString) assuma tale valore... Ho provato tutti gli eventi ma non funziona... Suggerimenti?? Grazie
__________________
"Due cose sono infinite: l'universo e la stupidità umana ma sull'universo nutro ancora dubbi..."(A. Einstein) |
![]() |
![]() |
![]() |
#2 | |
Senior Member
Iscritto dal: Mar 2006
Città: Bergamo
Messaggi: 2499
|
Quote:
__________________
![]() |
|
![]() |
![]() |
![]() |
#3 |
Member
Iscritto dal: Jul 2006
Città: Milano
Messaggi: 131
|
Ti riporto il mio codice. Dovrebbe abilitare e disabilitare dei controlli a secondo dell'elemento di menù selezionato...e invece sembra che abiliti e disabiliti gli elementi a caso(per esempio quando seleziono "Arch" dovrebbe disabilitare tutti i controlli). m_combo è la variabile associata alla combo box ed è di tipo CString. I termini tra apici sono gli elementi del menù a tendina...Dove sta l'errore?
Codice:
void CIdentityDlg::OnSelchangeCombo() { // TODO: Add your control notification handler code here //UpdateData(FALSE); if(m_combo == "Arch") { GetDlgItem(IDC_EDIT1)->EnableWindow(FALSE); GetDlgItem(IDC_EDIT2)->EnableWindow(FALSE); GetDlgItem(IDC_EDIT3)->EnableWindow(FALSE); GetDlgItem(IDC_EDIT4)->EnableWindow(FALSE); GetDlgItem(IDC_EDIT5)->EnableWindow(FALSE); GetDlgItem(IDC_EDIT6)->EnableWindow(FALSE); GetDlgItem(IDC_EDIT7)->EnableWindow(FALSE); GetDlgItem(IDC_EDIT8)->EnableWindow(FALSE); UpdateData(TRUE); } if (m_combo == "Left Loop") { GetDlgItem(IDC_EDIT1)->EnableWindow(FALSE); GetDlgItem(IDC_EDIT2)->EnableWindow(TRUE); GetDlgItem(IDC_EDIT3)->EnableWindow(TRUE); GetDlgItem(IDC_EDIT4)->EnableWindow(TRUE); GetDlgItem(IDC_EDIT5)->EnableWindow(TRUE); GetDlgItem(IDC_EDIT6)->EnableWindow(TRUE); GetDlgItem(IDC_EDIT7)->EnableWindow(TRUE); GetDlgItem(IDC_EDIT8)->EnableWindow(TRUE); } if (m_combo == "Right Loop") { GetDlgItem(IDC_EDIT1)->EnableWindow(TRUE); GetDlgItem(IDC_EDIT2)->EnableWindow(FALSE); GetDlgItem(IDC_EDIT3)->EnableWindow(TRUE); GetDlgItem(IDC_EDIT4)->EnableWindow(TRUE); GetDlgItem(IDC_EDIT5)->EnableWindow(TRUE); GetDlgItem(IDC_EDIT6)->EnableWindow(TRUE); GetDlgItem(IDC_EDIT7)->EnableWindow(TRUE); GetDlgItem(IDC_EDIT8)->EnableWindow(TRUE); } if (m_combo == "Whorl") { GetDlgItem(IDC_EDIT1)->EnableWindow(TRUE); GetDlgItem(IDC_EDIT2)->EnableWindow(TRUE); GetDlgItem(IDC_EDIT3)->EnableWindow(FALSE); GetDlgItem(IDC_EDIT4)->EnableWindow(TRUE); GetDlgItem(IDC_EDIT5)->EnableWindow(TRUE); GetDlgItem(IDC_EDIT6)->EnableWindow(TRUE); GetDlgItem(IDC_EDIT7)->EnableWindow(TRUE); GetDlgItem(IDC_EDIT8)->EnableWindow(TRUE); } if (m_combo == "Tended Arch") { GetDlgItem(IDC_EDIT1)->EnableWindow(TRUE); GetDlgItem(IDC_EDIT2)->EnableWindow(TRUE); GetDlgItem(IDC_EDIT3)->EnableWindow(TRUE); GetDlgItem(IDC_EDIT4)->EnableWindow(FALSE); GetDlgItem(IDC_EDIT5)->EnableWindow(TRUE); GetDlgItem(IDC_EDIT6)->EnableWindow(TRUE); GetDlgItem(IDC_EDIT7)->EnableWindow(TRUE); GetDlgItem(IDC_EDIT8)->EnableWindow(TRUE); } if (m_combo == "None") { GetDlgItem(IDC_EDIT1)->EnableWindow(TRUE); GetDlgItem(IDC_EDIT2)->EnableWindow(TRUE); GetDlgItem(IDC_EDIT3)->EnableWindow(TRUE); GetDlgItem(IDC_EDIT4)->EnableWindow(TRUE); GetDlgItem(IDC_EDIT5)->EnableWindow(FALSE); GetDlgItem(IDC_EDIT6)->EnableWindow(TRUE); GetDlgItem(IDC_EDIT7)->EnableWindow(TRUE); GetDlgItem(IDC_EDIT8)->EnableWindow(TRUE); } UpdateData(TRUE); }
__________________
"Due cose sono infinite: l'universo e la stupidità umana ma sull'universo nutro ancora dubbi..."(A. Einstein) |
![]() |
![]() |
![]() |
#4 |
Member
Iscritto dal: Jul 2006
Città: Milano
Messaggi: 131
|
Ho risolto bastava mettere UpdateData(TRUE) prima degli if...invece che dopo...Grazie lo stesso. Ciao
__________________
"Due cose sono infinite: l'universo e la stupidità umana ma sull'universo nutro ancora dubbi..."(A. Einstein) |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 22:51.