Pulldownmenü+Schieberegler flackern



  • Hi Leute,

    bin mal wieder auf eure Hilfe angewiesen 🙄

    Ich habe eine Anwendung die Elemente wie Schieberegler, Pulldownmenü und Eingabefeldern beinhaltet - nichts besonderes also.
    Das blöde ist nur, immer wenn sich eins der 32 Eingeabefelder aktualisiert flackert das Pulldownmenü. Wähle ich nun einen Wert aus dem Pulldownmenü aus, springt der Wert wieder auf den "Anfangswert" zurück sobald ein Eingabefeld aktualisiert wird.
    Was vielleicht noch wichtig ist: Ich benutze die 32 Eingabefelder zur Ausgabe verschiedener Werte!

    EDIT: Ach ja, der Schieberegler fehlt noch: Wenn ich den Regeler z.B. von 10 nach 100 ziehen will lasse ich ihn bei 100 aus und er hüpft wieder auf 10 zurück 😞

    Hat jemand von euch eine Lösung für diese Probleme?? Ich hab keine Ahnung 😞

    Schon jetzt Danke,

    chiao cha-OS


  • Mod

    Was meinst Du mit Pulldown Menu? Meinst Du eine ComboBox?

    Wie aktualisierst Du denn die Felder?
    Rufst Du immer UpdateData auf um die Daten alle zu aktualisieren?



  • Hi,

    richtig ich aktualisiere immer mit UpdateData.

    chiao cha-OS


  • Mod

    Dann barucht die die Flackerei nicht wundern, denn durch diese Funktion wird jedes feld geändert, selbst wenn sich nur ein Wert in einer Variable geändert hat.

    Unter bestimmten Umständen ist es weitaus ratsamer die Felder einzeln zu ändern um genau solche Effekte zu vermeiden!

    Was ist nun ein Pulldown Menü? Meintest Du eine ComboBox?



  • @Martin,

    genau, mit einem Pulldownmenü meine ich eine ComboBxo! Wie mach ich das nun, dass nur die einzelnen Eingabefelder aktualisiert werden, ohne das andere Steuerelemente davon beeinflusst werden??

    Danke für die Hilfe,

    chiao cha-OS


  • Mod

    Dann musst Du die Controls einzeln (z.B. mit SetWindowText, SetDlgItemText) anpsrechen. Das ist auch evtl. sehr mühsam, aber wenn Du das geflacker loswerden willst bei vielen Controls, dann bleibt Dir nichts anderes übrig. Meistens ändern sich ja auch nicht so viele Parameter durch eine Aktion.



  • Hi Martin,

    besten Dank für deine Hilfe! Habe das jetzt mit SetDlgItemText umgesetzt, hat auch einwandfrei funktioniert. Das einzige "Problem" war, die double-Werte in einen String umzuwandeln!

    Falls es andere Leute gibt, die irgendwann mal das gleiche Problem haben sollten, hier ein Beispiel:

    double dZahl = 12.00;
    CString str;
    str.Format("%4.2f", dZahl);
    SetDlgItemText(IDC_Ausgabe,str);
    

    Das ist alles!!


Anmelden zum Antworten