Flackern von Controls verhindern...
-
hi,
WS_CLIPSILBLINGS hilft mir auch nicht da es sich bei dem anderen fenster um eine ganz andere Anwendung handelt. Trotzdem danke für die Antwort.
BR
-
Die Lösung ist einfach nur WS_CLIPCHILDREN zu verwenden und BeginPaint/EndPaint immer bei WM_PAINT auszuführen gerade dann wenn es von mir selbst gar nicht gebraucht wird.
-
DefWindowProc ruft ja eigentlich BeginPaint/EndPaint oder etwas ähnliches auf.
-
,9 schrieb:
DefWindowProc ruft ja eigentlich BeginPaint/EndPaint oder etwas ähnliches auf.
Nope, afaik wird WM_PAINT immer wieder eingesetzt in die Message-Queue bis sie bearbeitet wurde.
MfG SideWinder
-
Sag doch nicht "nope" und dann "afaik". lol
-
Warum nicht? Aber für dich ohne IT-Kürzel:
"Nein, so weit ich weiß wird <insert text here> gemacht."
MfG SideWinder
-
Ich kenne das Kürzel. "Nein" kannste aber nur sagen wenn du dir sicher bist.
-
Hab' jetzt leider keine Quellenangabe, aber im Petzold steht es afaik auch, dass man, wenn man WM_PAINT in einer eigenen WindowProc bearbeitet immer BeginPaint/EndPaint aufrufen soll, da ansonsten die Nachricht wieder in der Queue landet, soweit richtig. Wenn man aber die Nachricht gar nicht abfängt, dann erledigt das afaik die DefWindowProc, sofern diese am Ende der eigenen aufgerufen wird.
Wenn die DefWindowProc nicht BeginPaint/EndPaint aufrufen würde, so würden ja ständig WM_PAINT-Messages in der Queue landen, wenn man die Nachricht nicht selbst abfängt, was aber de facto nicht geschieht.
-
Ab XP kann man auch fürs Main-Window einfach WS_EX_COMPOSITED (oder so ähnlich) setzen. Näheres siehe MSDN...
-
Danke für den hinweis, das Programm muss aber auch auf Windows 2000 System laufen.
Daher würde das ja dann nix bringen. Trotzdem noch mal danke für den Hinweis.
BR