Fenster neu zeichnen ? flimmern ?
-
also ich versuche mein fenster neu zeichnen zu lassen, indem ich ein WM_PAINT abschicke...das fenster wird aber nicht neugezeichnet

ausserdem habe ich das problem, dass der inhalt des fensters beim neuzeichnen (z.B. resize) sehr stark flimmert!danke für jede hilfe
-
WM_PAINT abschicken alleine reicht nicht, da du erst noch die update region setzen musst.
Üblicherweise nimmt man InvalidateRect() - das führt dazu dass ein bestimmter Bereich als "ungültig" markiert wird. Sobald keine anderen Messages mehr in der Queue warten schickt Windows dir dann automatisch ein WM_PAINT. Wenn du das Fenster vorher schon neu gezeichnet haben willst geht das auch, dann musst du UpdateWindow() aufrufen.
Das Filmmern kommt im übrigen vom "hintergrund löschen". Wenn im Handler für WM_PAINT sowieso immer der ganze Client Bereich gemalt wird kannst du das abstellen, indem du in der WNDCLASS Struktur einfach hbrBackground auf 0 setzt. Dann musst du die aber wie gesagt selbst darum kümmern dass alle Pixel im Clientbereich gemalt werden, da Windows dann eben nichtmehr die Hintergrundfarbe drübermalt bevor es dir ein WM_PAINT schickt.