滚动客户区内容的最简单方法是擦除并重新绘制。这是应用程序可能与SB_PAGEUP,SB_PAGEDOWN和SB_TOP通知消息一起使用的方法,通常需要全新的内容。
对于某些通知消息(例如SB_LINEUP和SB_LINEDOWN),并不是所有内容都需要被清除,因为在滚动发生后有些仍然可见。ScrollWindowEx功能保留客户区内容的一部分,将保留部分移动一定数量,然后准备客户区其余部分来绘制新信息。ScrollWindowEx使用BitBlt函数将数据对象的特定部分移动到客户区域内的新位置。当发生下一个WM_PAINT消息时,客户区域的任何未覆盖的部分(任何未保留的)都将被无效,被擦除和绘制。
ScrollWindowEx功能可用于从滚动操作中排除客户区域的一部分。这使得具有固定位置的项目(例如子窗口)不能在客户区域内移动。它会自动使接收新信息的客户区域的部分无效,因此应用程序不必计算自己的裁剪区域。有关剪辑的更多信息,请参阅剪裁.
通常,应用程序会按照滚动条所指向的方向滚动窗口的内容。例如,当用户在滚动框下面的区域中点击轴时,应用程序向上滚动窗口中的对象,以显示在可见部分之下的对象的一部分。