Mehrere Comboboxen
-
Hi, ich bin am verzweifeln
und zwar habe ich 2 comboboxen
nun möchte ich bei der einen einen wert asuwählen und die andere soll sofort den passenden wert annehmen. Und umgekehrt genausohier mal zur verdeutlichung:
Bei Combobox1 wird der Wert "Deutschland" gewählt
und Combobox2 soll dann "Berlin" anzeigenoder wenn ich in Combobox2 "London" wähle
dann soll in Combobox1 "Grossbritannien" angezeigt werden.alle meine ansätze sind gescheitert. ich dachte ich kann das nett mit CB_SETCURSEL und CB_GETCURSEL lösen, aber richtig hat es nicht funktioniert. mir fehlt ein wenig der RICHTIGE ansatz
bis jetzt habe ich nur mit einer combobox und einem static fenster gespieltcase CBN_SELCHANGE: sel_laender = SendMessage(GetDlgItem(hdlg, cb_laender), CB_GETCURSEL, 0, 0); switch( sel_laender ) { case 0: SendMessage(GetDlgItem(hdlg, cb_staedte), CB_SETCURSEL, 0, 0); break; case 1: SendMessage(GetDlgItem(hdlg, cb_staedte), CB_SETCURSEL, 1, 0); break; /*usw.*/ default: SendMessage(GetDlgItem(hdlg, cb_staedte), CB_SETCURSEL, 9, 0); } sel_staedte = SendMessage(GetDlgItem(hdlg, cb_staedte), CB_GETCURSEL, 0, 0); switch( sel_staedte ) { case 0: SendMessage(GetDlgItem(hdlg, cb_laender ), CB_SETCURSEL, 0, 0); break; case 1: SendMessage(GetDlgItem(hdlg, cb_laender ), CB_SETCURSEL, 1, 0); break; /*usw.*/ default: SendMessage(GetDlgItem(hdlg, cb_laender ), CB_SETCURSEL, 9, 0); } break;
-
Ist ans sich richtig
Nur musst Du berücksichtigen WAS sich geändert hat.
Du prüfst immer zuerst das Land. Wenn also zuest die Stadt verändert wird, dann gehst Du trotzdem zuerst hin und untersucht das Land, das sich nicht geändert hat. Folge: Deine Änderungen werden rückgängig gemacht.Baue zwei WM_COMMAND Handler ein. Einen für die Änderung der Stadt einen für das Land. Du musst das Land ja nicht neu setzen, wenn es gerade gewählt wurde!
-
BTW: Es gibt SendDlgItemMessage!
-
ja, allerdings bin ich im Moment noch etwas unentschlossen, ob ich das in einem dialog ablaufen lassen will, oder im main fenster. Und ich habe die erfahrung gemacht, dass es so einfacher zu editieren ist.
Danke für die Antwort klappt wunderbar.