My application has multiple views, typically four, and some may be hidden. When the user moves the mouse, I invalidate all the views so changes so changes will be shown in the next Paint event.
The problem occurs when repainting takes a significant amount of time and the user continues moving the mouse. The result is that the first view updates rapidly, the rest very slow.
What appears to be happening is subsequent MouseMove events are processed before all views have had a chance to paint. The first window, which has just finished its paint, finds another paint event in its queue and processes it.
I have collected statistics on the mouse moves, invalidates, paints to determine that this is (at leas in effect) true. Is there any way to prevent this effect from occuring
I can think of a number of hacky solutions which are not desirable, like setting a timer to perform updates. Counting view paints (and not invalidating until all have been painted) is not an option as they can be hidden or removed, though the result does work. Perhaps I could post a user message, which I presume will not be recieved untill all controls have handled their events, the goal being to detect a 'loop' in the windows message events and throttle Invalidate calls.

OnMouseMove Invalidate Paint - uneven paint with multiple views
Bob__Bob
ron nash
UstesG