Text in der Editcontrol einer Combobox mit Dropdown Style direkt setzen



  • Ist es möglich den Text im Editcontrol teil einer Combobox mit Dropdownstyle direkt zu setzen ohne vorher ein Item in der Liste anzulegen un dieses dann zu selektieren.

    Den Text direkt holen geht, das hab ich geprüft:

     ... Code ... 
    char	text[256];
    
    GetWindowText((HWND)SendMessage(hCombo, CBEM_GETEDITCONTROL, 0, 0), text, sizeof(text));
    
    

    Eigentlich hatte ich erwartet das folgedes funktioniert

     ... Code ... 
    SetWindowText((HWND)SendMessage(hCombo, CBEM_GETEDITCONTROL, 0, 0), text);
    

    Der Aufruf gibt true zurück, was laut msdn bedeutet erfolgreich ausgeführt. Aber der Text steht nicht im Editfeld der Combobox.



  • HWND combobox{ CreateWindow(L"COMBOBOX", L"",
    	CBS_DROPDOWN | CBS_HASSTRINGS | WS_CHILD | WS_OVERLAPPED | WS_VISIBLE,
    	10, 10, 200, 80, window, nullptr, GetModuleHandle(0), nullptr) };
    SendMessage(combobox, CB_ADDSTRING, 0, reinterpret_cast<LPARAM>(L"foo"));
    SendMessage(combobox, CB_ADDSTRING, 0, reinterpret_cast<LPARAM>(L"bar"));
    SendMessage(combobox, CB_ADDSTRING, 0, reinterpret_cast<LPARAM>(L"baz"));
    SetWindowText(combobox, L"foobarbaz");
    

    tut toll.



  • @swordfish sagte in Text in der Editcontrol einer Combobox mit Dropdown Style direkt setzen:

    CB_ADDSTRING

    Das was du beschreibst ist Strings in die Dropdown Liste einzufügen. Meine Dropdownliste hat schon die passenden Wert. Aber die ComboBox hat auch eine Editcontrol, daher "CBEM_GETEDITCONTROL" und in diese Editcontrol will ich einen Text eingeben ohne dass dieser Text in der Dropdownlist auftaucht. Bei einer Usereingabe steht dort ja auch individueller Text drin, ohne dass dieser Text zuvor aus der Dropdownliste ausgewählt wurden ist.
    Hast du überhaupt gelesen was ich gefragt habe?



  • @der-quaker sagte in Text in der Editcontrol einer Combobox mit Dropdown Style direkt setzen:

    Hast du überhaupt gelesen was ich gefragt habe?

    Hast du überhaupt gelesen was ich geantwortet habe?

    @der-quaker sagte in Text in der Editcontrol einer Combobox mit Dropdown Style direkt setzen:

    Das was du beschreibst ist Strings in die Dropdown Liste einzufügen.

    Nicht nur. Siehe letzte Zeile meines Codes.

    @der-quaker sagte in Text in der Editcontrol einer Combobox mit Dropdown Style direkt setzen:

    Aber die ComboBox hat auch eine Editcontrol, daher [...]

    Es ist furz-piep egal, ob es eine CoboBox oder eine ComboBoxEx ist,

    @swordfish sagte in Text in der Editcontrol einer Combobox mit Dropdown Style direkt setzen:

    SetWindowText(combobox, L"foobarbaz");
    

    tut toll.

    Wenn bei dir nicht, dann zeig Code anstatt sinnlos rumzuheulen.



  • Ja dein Code funktioniert, genau wie meiner auch. Lag wohl daran, dass ich die ComboBox in einem Dialog erstellt habe und während "WM_INITDIALOG" die Combobox warum auch immer nicht sauber gesetzt wird, obwohl die aufrufende Funktion andere Controls des Dialogs an diese Stelle sauber bedient. Wenn ich das Setzten nach Abschluss von "WM_INITDIALOG" aufrufe dann funktioniert alles wie erwartet. Also Danke für die Hilfe.


Log in to reply