CComboBox: Zur Laufzeit von reiner Auswahl auf Auswahl mit Eingabefeld und zurück wechseln



  • Hallo!

    Ich möchte gerne zur Laufzeit den Style umschalten.
    So weit bin ich:

    if (fAktiv)
    	{
    		m_cbxRngnr.ModifyStyleEx(CBS_DROPDOWNLIST, CBS_DROPDOWN);
    	}
    	else
    	{
    		m_cbxRngnr.ModifyStyleEx(CBS_DROPDOWN, CBS_DROPDOWNLIST);
    	}
    

    ModifyStyle habe ich auch schon ohne Erfolg versucht. 😞

    Habe ich etwas vergessen? Oder den falschen Befehl?



  • versuch mal ein redraw. komm drauf an, was für ein control das ist. ich vermute mal CComboBox ->

    RedrawWindow()
    

    ansonsten prüfe doch mal mit breakpoints, ob die methoden überhaupt erreicht werden.

    gruß
    Daniel



  • Ja, es ist eine ComboBox (siehe Betreff 😉 ).
    Ich habe jetzt unter der if noch diese Zeile:

    m_cbxRngnr.RedrawWindow();
    

    Und per Breakpoint habe ich gesehen, dass ich auf jeden Fall durch die else laufe, es müsste also eine reine Auswahlliste sein - aber ich kann fröhlich drin rum tippen. 😞



  • Hm, ich habs jetzt gerade selber ausprobiert. Anscheinend können nicht alle Styles zur Laufzeit mit ModifyStyle geändert werden. Vielleicht weiß jemand mehr?
    Das Redraw ist dann natürlich hinfällig.

    gruß
    Daniel

    ps: richtiger wäre ModifyStyle anstatt ModifyStyleEx



  • DanielusITF schrieb:

    Hm, ich habs jetzt gerade selber ausprobiert. Anscheinend können nicht alle Styles zur Laufzeit mit ModifyStyle geändert werden. Vielleicht weiß jemand mehr?

    Ich hoffe es. 🙂

    Das Redraw ist dann natürlich hinfällig.

    Okay, dann mache ich es weg.

    gruß
    Daniel

    ps: richtiger wäre ModifyStyle anstatt ModifyStyleEx

    Gut, dann ändere ich das mal zurück.

    Zur Not werde ich einfach 2 Comboboxen machen und mit ShowWindow arbeiten. 😞



  • du kannst ja (solange noch kein besserer vorschlag da ist) versuchen mit create das dropdown immer neu zu erzeugen.



  • Keine weiteren Ideen? 😞

    Neu erzeugen ist doof, weil ich es dann auch immer wieder neu füllen müsste.
    Dann lieber eine weitere Combobox dazu. 🙄


Anmelden zum Antworten