ComboBox ShowDropDown()



  • Die Funktion soll sein das wenn in das Editfeld der ComboBox etwas eingegeben
    wird diese sofort Aufspringt und an die passende Stelle springt.

    Allerdings ist bei mir das Problem das nach dem Aufruf von ShowDropDown() der erste
    Passende eintrag selektiert wird und im Edit Feld angezeigt wird.
    Weis jemand zufällig wie man diesen Bug beheben kann?


  • Administrator

    Wie kommst du bitte schön auf die Idee, dass dies ein Bug sein soll? ShowDropDown öffnet nur die ListBox einer ComboBox und mehr nicht. Lies dazu in der MSDN nach.

    Du musst die Selektion selber vornehmen. Schau dir dazu mal, CComboBox::FindString, CComboBox::FindStringExact, CComboBox::SetCurSel und CComboBox::SelectString an.

    Grüssli



  • Bug war vielleicht das falsche Wort.
    Durch die eigene logik der Combo wird aber trotzdem der erste Passende
    Eintrag selektiert.
    Ich habe zwar eine Lösung für das Problem, die ist aber nicht sonderlich toll.
    Die Lösung wäre einfach mit SetWindowText das EditFeld der Combo überschreiben.
    Allerdings ist dann bei mir für einen kurzen moment noch der zuerst selektierte
    Text zu sehen.


  • Administrator

    Ich kann irgendwie nicht ganz folgen. Wo ist dein Problem, ich habe dir ja die entsprechenden Möglichkeiten angegeben. Du selektierst den Eintrag und zeigst dann die Liste der ComboBox an. Zeig notfalls etwas Code und drück dich etwas genauer aus, dann kann man dir auch besser helfen. Und beim Code, bitte C/C++ Tags benutzen 😉

    Grüssli


Anmelden zum Antworten