gracias por la respuesta.
A ver, si yo uso un ValidateRect pasandole como argumento toda la ventana, el resultado es que no se deberia de alterar el contenido?
El caso es que usar el Validate me ha resuelto el problema de que al pasar la ventana se destrozara el dibujo, peeero, solo se restablece el dibujo al quitar la ventana de encima, si
muevo la ventana superior, el dibujo se destripa.
La ventana que pasa por encima es un OpenChooseFileDialog, al cerrarse, todo queda bien, pero al moverla, destroza el dibujado. Esta parte es la que me desconcierta, tal como decis, y tal como creia yo, si al moverse la ventana sobre la mia, se manda el WM_PAINT, deberia de redibujarse inmediatamente y no deberia de verse el estropicio.