In primo luogo, quando chiami InvalidateRect invalida solo l'area utilizzabile dalla tua "casella di testo"; questo già dovrebbe ridurre il flickering.
Inoltre, potresti evitare di forzare il ridisegno del fondo, e disegnare invece il fondo della sola casella di testo nel WM_PAINT, usando la Polygon invece della Polyline. Questo dovrebbe ridurre il flickering alla sola area della casella di testo.
Se ancora non bastasse, puoi ricorrere alla tecnica del double buffering; la trovi spiegata (assieme ad altri utili consigli sull'argomento) qui.

Rispondi quotando