调整大小的 Windows
当用户选择窗口菜单命令(如“大小”和“最大化”)或应用程序调用函数(如 SetWindowPos 函数)时,系统会更改窗口的大小。 当窗口更改大小时,系统会假定窗口以前公开部分的内容不受影响,也不需要重新绘制。 系统仅使窗口的新公开部分失效,从而在应用程序处理最终 WM_PAINT 消息时节省时间。 在这种情况下,当窗口大小减小时,不会生成 WM_PAINT 。
对于某些窗口,对窗口大小的任何更改都会使内容失效。 例如,如果时钟应用程序调整时钟表面以整齐地适应其窗口,则必须在窗口大小更改时重新绘制时钟。 若要强制系统在进行垂直、水平或垂直和水平更改时使窗口的整个工作区失效,应用程序必须在注册窗口类时指定CS_VREDRAW或CS_HREDRAW样式,或同时指定这两者。 每当用户或应用程序更改窗口大小时,属于具有这些样式的窗口类的任何窗口都会失效。