Gracias por la respuesta, el fallo fue mio que no me explique bien.
La cosa es que tengo unas ventanas dibujadas a manita enteras usando GDI en el WM_PAINT.
Y dibujan y redibujan perfectamente cuando salen del monitor, se mueven ... etc.
El problema es que cuando paso una ventana por encima, me genera lineas grises (de no dibujado) sobre la ventana de debajo.
La idea era detectar si una ventana iba a pasar por encima para invalidar el contenido y mandar el mensaje de WM_PAINT.
Yo creo que realmente, al pasar por encima, se manda el WM_PAINT pero el hecho de que no se dibuje bien... no lo entiendo...
gracias.