1.2.11 Redrawing the Client Area

When a window is moved, Windows automatically copies the contents of the client area to the new location. This saves time because a window does not have to recalculate and redraw the contents of the client area as part of the move. If the window moves and changes size, Windows copies only as much of the previous client area as is needed to fill the new location. If the window increases in size, Windows copies the entire client area and sends a WM_PAINT message to the window to fill in the newly exposed areas. When a window is moved, Windows assumes the contents of the client area remain valid and can be copied without modification to the new location.

For some windows, however, the contents of the client area are not valid after a move, especially if the move includes a change in size. For example, a clock application whose window must always contain the complete image of the clock has to redraw the window anytime the window changes size, and has to update the time after the move. To prevent the windows from copying the previous contents of the client area, a window should specify the CS_VREDRAW and CS_HREDRAW styles in the window class.