Fensterinhalt wird nicht aktualisiert

judif

Grünschnabel
Hallo!

Ich habe in Windows XP mit Visual Studio .NET eine Fensteranwendung mit wxWidgets geschrieben. Der graphische Inhalt des Fensters wird mithilfe von OpenGL erzeugt.
Mein Problem ist nun, dass sich bei Ausführung der Anwendung der Inhalt des Fensters nicht automatisch aktualisiert. Erst wenn ich das Fenster minimiere und dann wiederherstelle oder wenn ich es von einem anderen Fenster überdecke und danach wieder in den Vordergrund hole wird der Inhalt aktualisiert. Komischerweise ist dies nur bei mir zuhause am PC der Fall. Führe ich dieselbe Anwendung an einem anderen PC aus, habe ich dieses Problem nicht. Weißt vielleicht jemand woran genau das liegen könnte?
Vielen Dank für jegliche Hilfe!
Lg, JudiF

PS: Ich bin ganz neu hier, also wenn ich Blödsinn mache, bitte ganz laut schrei(b)en
 
Sobald aktualisiert werden soll schickt Windows die Nachricht WM_PAINT an dein Fenster. Zeichne dann einfach neu.
 
moin


Wenn du das Fenster aus einer anderen Funktion heraus aktualisieren möchtest kannst du z.B. InvalidateRect(....) benutzen. der Befehle sendet ein WM_PAINT an das in den Parametern angegebene Fenster.


mfg
umbrasaxum
 
Das Problem ist nicht, dass die Funktion, die den Fensterinhalt aktualisiert (Redraw) nicht aufgerufen wird (die wird nämlich schon permanent ausgeführt). Wie gesagt, führe ich die Anwendung an einem anderen PC aus, wird der Inhalt sehr wohl aktualisiert.

LG, JudiF
 
Ich komm irgendwie nicht weiter :(
Scheinbar hat das Problem doch nicht nur mein PC, sondern es sieht so aus als läge es nun doch an meinem Programm.
Komisch dabei ist, dass meine Canvas-Klasse (abgeleitet von wxGLCanvas) regelmäßig einen Paint-Event (EVT_PAINT) auslöst und somit auch die von mir geschriebenen Methoden zum Zeichnen der Inhalte aufgerufen werden. In vereinzelten Fällen (noch hab ich nicht durchschaut was diese Fälle auszeichnet) wird der Fensterinhalt sehr wohl aktualisiert. In den meisten Fällen jedoch geschieht das nicht.
Wenn ich nun ein anderes Fenster vor meine Anwendung schiebe und danach meine Anwendung wieder in den Vordergrund hole oder das andere Fenster beseite schiebe, zeigt meine Anwendung den aktualisierten Inhalt (allerdings nur dort, wo es vom anderen Fenster zuvor verdeckt wurde).
Ich weiß einfach nicht mehr weiter & freu mich riesig über jede Hilfe.
Tausend Dank,
JudiF
 
Hast du das mit dem InvalidateRect versucht?
WM_PAINT kann so oft kommen, wie es will, wenn du Windows nicht sagst, dass der Inhalt des Fensters neu gezeichnet werden muss.
 
Zurück