### 函数功能

该函数设置所指定滚动条中的滚动按钮的位置，如要求重画滚动条以反映出滚动按钮的新位置。该函数提供了向后兼容性，新的应用程序应使用SetScrolllnfo函数。

### 函数原型

int SetScrollPos（HWN hWnd，int nBar，int nPos，BOOL bRedraw）；

### 参数

hWnd：滚动条控制或带有标准滚动条窗体的句柄，由nBar参数值确定。
nBar：指定滚动条将被设置。这个参数可以是下面值，含义如下：
SB_CTL：设置滚动条控制中滚动翻页盒的位置。而参数hwnd必须是滚动条控制的句柄。
SB_HORZ：设置窗体上标准水平滚动翻页盒的位置。
SB_VERT：设置窗体上标准垂直滚动翻页盒的位置。
nPos：指定滚动翻页盒的新位置。这个位置必须在滚动范围之内。若要了解更多有关滚动范围的信息，请参见SetScrollRange函数。
bRedraw：指定滚动条是否被重画以反映出新的滚动翻页盒的位置。如果这个参数为TRUE，则滚动条将被重画；为FALSE则滚动条不被重画。

### 返回值

如果函数运行成功，其返回值是滚动翻页盒的前一个位置。如果函数运行失败，其返回值是0。若想获得更多的错误信息，请调用GetLastError函数。
注意：如果由于其他并发函数调用，滚动条又被重画，那么设置参数bRedraw为负时非常有必要的。
因为说明滚动条位置的消息WM_HSCROLL和WM_VSCROLL只能为16位数据，那些只依赖于说明位置数据消息的应用程序在函数SetScrollPos的参数nPos中有一个实际最大值。
但是，因为函数SetScrolllnfo，SetScrollPos，SetScrollRange，GetScrollPos， 和 GetScrollRange都支持32位的滚动条位置数据，所以有一个解决16位WM_HSCROLL和WM_VSCROLL消息阻碍的途径，请参见函数GetScrolllnfo的有关技术说明。

### 速查

Windows NT 3.1、Windows 95、Windows CE 2.0以上，头文件：winuser.h；库文件：user32.lib。