If a window created with the CS_SAVEBITS style is reduced, the screen image saved is used to redraw the area uncovered when the window size changes, if those bits are still valid.

If the CS_SIZEREDRAW style is present, the entire window area is assumed invalid if sized. Otherwise, WM_CALCVALIDRECTS is sent to the window to inform the window manager which bits it may be possible to preserve.

Messages sent from WinSetWindowPos and WinSetMultWindowPos have specific orderings within the window-positioning process. The process begins with redundancy checks and precalculations on every window for each requested operation. For example, if SWP_SHOW is present but the window is already visible, SWP_SHOW is turned off. If SWP_SIZE is present, and the new size is equal to the old size, SWP_SIZE is turned off.

If the operations create new results, the information is calculated and stored (for instance, when sizing or moving, the new window rectangle is stored for later use). It is at this point that the WM_ADJUSTWINDOWPOS message is sent to any window that is sizing or moving. It is also at this point that the WM_CALCVALIDRECTS message is sent to any window that is sizing and does not have the CS_SIZEREDRAW window style.

When all the new window states are calculated, the window-management process begins. Window areas that can be preserved are moved from the old to the new positions, window areas that are invalidated by these operations are calculated and distributed as update regions. When this is finished, and before any synchronous-paint windows are repainted, the WM_SIZE message is sent to any windows that have changed size. Next, all the synchronous-paint windows that can be are repainted, and the process is complete.

If a synchronous-paint parent window has a size-sensitive area displayed that includes synchronous-paint child windows, the parent needs to reposition those windows when it receives the WM_SIZE message. Their invalid regions are added to the parent's invalid region, resulting in one update after the parent's WM_SIZE message, rather than many independent (and later, duplicated) updates.

Note: Some windows will not be positioned precisely to the parameters of this function, but according to the behavior of their window procedure. For example, frame windows without a style creation flag of FCF_NOBYTEALIGN will not position to any specific screen coordinate. Similarly, frame windows with zero size and position are created by the WinCreateStdWindow function and therefore these values are treated as a special case by the frame window procedure.