当用户选择窗口菜单命令(如大小和最大化)或应用程序调用功能(如SetWindowPos)功能时,Windows会更改窗口的大小。当窗口更改大小时,Windows会假定以前暴露的窗口部分的内容不受影响,无需重绘。Windows仅使窗口的新露出的部分无效,这节省了应用程序处理最终WM_PAINT消息时的时间。在这种情况下,当窗口的大小减小时,不会生成WM_PAINT。
对于某些窗口,对窗口大小的任何更改都会使内容无效。例如,一个时钟应用程序使时钟的面部适应整齐地在其窗口内,每当窗口改变大小时都必须重绘时钟。要强制Windows在垂直,水平或垂直和水平方向进行更改时使窗口的整个客户端区域无效,应用程序必须在注册窗口类时指定CS_VREDRAW或CS_HREDRAW样式,或两者。每当用户或应用程序更改窗口的大小时,属于具有这些样式的窗口类的任何窗口都将失效。