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 genauso

    hier mal zur verdeutlichung:
    Bei Combobox1 wird der Wert "Deutschland" gewählt
    und Combobox2 soll dann "Berlin" anzeigen

    oder 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 gespielt

    case 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;
    

  • Mod

    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!


  • Mod

    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.


Anmelden zum Antworten