wxWidgets Fenster refreshen / friert ein

Gast #417173
Ich habe jetzt mit wxWidgets angefangen. Ich lese eine Diskette ein und
erstelle ein Image. Dazu wird in einer Statusbar angezeigt wie weit das
es schon ist. wird jedoch das Fenster verschoben, oder minimiert und
wiederhergestellt ist das Fenster weiss. Windows meint "keine
Rückmeldung", Bis die Diskette eingelesen ist, dann funktionierts
wieder. Ich habe jetzt noch dort wo der Status geändert wird ein
this->Refresh(); eingefügt, mit dem Ergebnis das das Fenster von selbst
weiss wird (ohne verschieben oder so). Wie kann ich das verhindern? Kann
ich etwas aufrufen das das ganze neu aufbaut oder muss ich da Threads
machen (das würde ich lieber noch lassen...)?

mfg Andreas
Persönliche Seite #417174
Ich vermute, du blockierst da ganze Programm beim Auslesen auf
irgendeine Weise. Damit blockierst du auch die gesamte
Eventverarbeitung und damit das Neuzeichnen beim maximieren usw.
Es gibt mehrere Möglichkeiten, dass ganze zu umgehen:
- Du verlagerst das ganze Einlesen in einen Thread (am saubersten)
- Du verlegst das Einlesen in den OnIdle-Handler
- Du rufst nicht nur refresh regelmäßig auf sondern auch wxApp::Yield.
Das veranlasst das Ausführen aufgelaufener Events
Gast #417175
>- Du rufst nicht nur refresh regelmäßig auf sondern auch wxApp::Yield.
Wie? Ich habe keine Instanz, wenn ich das richtig sehe wird das ganze
mit IMPLEMENT_APP(Project2FrmApp) gestartet... Wobei diese Klasse von
wxApp Yield geerbt hat... Ich habe schon gesucht aber Google findet
nicht das Yield das ich suche....

mfg Andreas

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 20 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.