Geänderten Text aus einem Combobox-Editfeld holen?



  • Irgendwie sehe ich "den Wald vor lauter Bäumen" nicht mehr ...

    Ein Dialog schreibt in "WM_INITDIALOG" in seine Combobox (groß genug) vom Typ "Dropdown" mehrere Einträge rein und selektiert den ersten. Wird auch alles angezeigt, ist vom User wähl- und selektierbar, der ausgewählte Eintrag aus dem Listenfeld wird auch beim Beenden des Dialoges gespeichert und kann verwendet werden.
    Der User soll aber die Möglichkeit haben, einen neuen Eintrag zu erstellen, indem er einen selektierten Eintrag überschreibt. Dieser geänderte Text soll erkannt und als neuer Eintrag in die Liste eingefügt werden. Der alte Eintrag soll aber unverändert erhalten bleiben.
    Mit "CBN_SELCHANGE", "CBN_EDITCHANGE", "CBN_EDITUPDATE" und "CBN_KILLFOCUS" kann ich zwar die Änderungen erkennen, aber Wie komme ich an den neuen Text ran?
    Mit (Code-Schnipsel)

    iEntry = SendMessage (GetDlgItem (hDlg, IDC_COMBO2), CB_GETCURSEL, (WPARAM)0, (LPARAM)0);
    iLen = SendMessage (GetDlgItem (hDlg, IDC_COMBO2), CB_GETLBTEXTLEN, (WPARAM)iEntry, (LPARAM)0);
    iLen = SendMessage (GetDlgItem (hDlg, IDC_COMBO2), CB_GETLBTEXT, (WPARAM)iEntry, (LPARAM)szTmp);
    sscanf (szTmp, "%d", &cData.iUdpPortOpened);   // neue Port-Nummer holen und global speichern
    

    komme ich nur an den alten, nicht geänderten Text ran.

    Blackbird



  • GetWindowText



  • Danke @MFK!

    Logisch, ist ja ein Editfeld.
    Manchmal hab' ich doch 'nen Black out 😮

    Blackbird


Anmelden zum Antworten