Fenster neuzeichnen wenn reaktiviert
-
Hallo liebe Community

Ich habe einen MFC-Dialog und darin ein eingebautes OpenGL-Fenster. Der Dialog an sich verändert sich nicht, aber im OpeGL-Fenster zeichne ich natürlich regelmäßig, allerdings manuell mittels der OnDraw(). Wenn ich nun ein anderes Fenster vor meinen Dialog setze und ihn dann reaktiviere, wird mir zwar der Dialog angezeigt, aber das OpenGL-Fenster nicht neu gezeichnet.
Meine Frage ist nun, welche Funktion beim Hervorholen des Dialogs ausgelöst wird. Ich kann aus dem Dialog heraus auf das OpenGL-Fenster zugreifen und es dann neuzeichnen lassen, aber ich weiß nicht, was sich im Dialog aktiviert.
Ein ähnliches Problem habe ich natürlich, wenn ich ein drüberliegendes Fenster von meinem Dialog wegziehe. Dann ist der Dialog ja nach wie vor inaktiv und zeichnet mein OpenGL-Fenster nicht. Was kann ich tun?
Grüße vom Neron
-
ich bin zwar nicht der vc++ checker, aber hast du RedrawWindow() schon probiert?
-
Naja, RedrawWindow() ist doch eine Funktion, die ich aktiv auslöse oder? Ich brauche aber eine Funktion, die automatisch ausgelöst wird, sobald ich mein Fenster hervorhole. CWnd hat ja eine Funktion namens OnActivate(). Aber ich weiß nicht, ob ich die überschreiben kann. Ich habs versucht, scheint aber nicht zu funktionieren...
-
Habs zum Teil hinbekommen...war n bissel tricky, die Windows Message WM_ACTIVATE zu finden, da sie von CWnd vererbt wird. Einfach im Klasseneditor die Nachrichtenbehandlungsroutine hinzufügen und dort dann den Code eingeben.
Allerdings bleibt mein Fenster nach wie vor grau, wenn ich mit andere Fenster drüberschiebe und wieder entferne. Gibt es da eine Möglichkeit?