使用说明我都给你了。你自己做一个看看吧。要自己动手。ScrollWindow VB声明 
Declare Function ScrollWindow Lib "user32" Alias "ScrollWindow" (ByVal hWnd As Long, ByVal XAmount As Long, ByVal YAmount As Long, lpRect As RECT, lpClipRect As RECT) As Long 
说明 
滚动窗口客户区的全部或一部分 
返回值 
Long,非零表示成功,零表示失败。会设置GetLastError 
参数表 
参数 类型及说明 
hWnd Long,待滚动窗口的句柄 
XAmount Long,水平滚动的距离。正值向右滚动,负值向左滚动 
YAmount Long,垂直滚动的距离。正值向下滚动,负值向上滚动 
lpRect RECT,用客户区坐标表示的一个矩形,它定义了客户区要滚动的一个部分。如设为NULL,则滚动整个客户区。在NULL的情况下,子窗口和控件的位置也会随同任何无效区域移动。否则,子窗口和无效区域不会一起移动。因此,在滚动之前,如指定了lpRect,一个明智的做法是先调用UpdateWindow函数 
lpClipRect RECT,指定剪切区域。只有这个矩形的区域才可能滚动。该矩形优先于lpRect。可设为NULL ScrollWindowEx VB声明 
Declare Function ScrollWindowEx Lib "user32" Alias "ScrollWindowEx" (ByVal hwnd As Long, ByVal dx As Long, ByVal dy As Long, lprcScroll As RECT, lprcClip As RECT, ByVal hrgnUpdate As Long, lprcUpdate As RECT, ByVal fuScroll As Long) As Long 
说明 
根据附加的选项,滚动窗口客户区的全部或部分 
返回值 
Long,常数值SIMPLEREGION,COMPLEXREGION,或NULLREGION,它们描述了无效区域的类型 
参数表 
参数 类型及说明 
hwnd Long,欲滚动的窗口的句柄 
dx Long,水平滚动的距离。正值向右滚动,负值向左滚动 
dy Long,垂直滚动的距离。正值向下滚动,负值向上滚动 
lprcScroll RECT,用客户区坐标表示的一个矩形,它定义了客户区要滚动的一个部分。如设为零,则滚动整个客户区 
lprcClip RECT,指定一个剪切矩形。只有这个矩形的内容才可能滚动。该矩形优先于lpRect。可能为零,表示不进行剪切处理(原文:Clipping rectangle. Only the area within this rectangle may be scrolled. This rectangle takes priority over lpRect. May be zero, in which case no clipping takes place.) 
hrgnUpdate Long,滚动过程中随同无效区域载入的一个“区”。可能是零 
lprcUpdate RECT,随同一个矩形载入的矩形结构,该矩形定义了滚动过程中无效的区域。可能是零 
fuScroll Long,对滚动进行控制的旗标。可以是下述任何常数的组合 
SW_ERASE 清除新无效区域的背景 
SW_INVALDATE 使滚动时未覆盖的区域无效 
SW_SCROLLCHILDREN 滚动区域内的子窗口进行等量移动。为避免得到无效的结果,在使用这个函数的时候,请确定子窗口或控件要么完全在滚动区域中,要么完全在滚动区域外