SetScrollPos
La función SetScrollPos cambia la posición de la caja de desplazamiento (thumb) de la barra de desplazamiento especificada y, si se requiere, dibuja de nuevo la barra de desplazamiento para mostrar la nueva posición. Esta función se incluye para mantener la compatibilidad con Windows 3.x. Las aplicaciones basadas en Win32 deben usar la función SetScrollInfo.
Sintaxis
int SetScrollPos( HWND hwnd, // manipulador de la ventana con la barra de desplazamiento int fnBar, // bandera de barra de desplazamiento int nPos, // nueva posición de la caja de desplazamiento BOOL fRedraw // bandera de redibujado );
Parámetros:
hwnd: identifica el control de barra de desplazamiento o la ventana con una barra de desplazamiento estándar, dependiendo del valor del parámetro fnBar.
fnBar: especifica la barra de desplazamiento a modificar. Puede tener uno de los siguientes valores:
Valor | Significado |
---|---|
SB_CTL | Cambia la posición de un control de barra de desplazamiento. El parámetro hwnd debe ser un manipulador del control de barra de desplazamiento. |
SB_HORZ | Cambia la posición de la barra de desplazamiento estándar horizontal de una ventana. |
SB_VERT | Cambia la posición de la barra de desplazamiento estándar vertical de una ventana. |
nPos: especifica la nueva posición de la caja de desplazamiento. La posición debe estar dentro del rango de la barra de desplazamiento. Para más información sobre el rango de las barras de desplazamiento, ver la función SetScrollRange.
fRedraw: especifica si la barra de desplazamiento debe ser redibujada para reflejar el cambio. Si es TRUE, la barra de desplazamiento es repintada. Si es FALSE, no.
Valor de retorno
Si la función tiene éxito, el valor de retorno es el valor anterior de la caja de desplazamiento.
Si falla, el valor de retorno es cero. Para conseguir más información, se puede llamar a GetLastError.
Observaciones
Si la barra de desplazamiento es redibujada por la llamada a otra función a continuación de esta, es conveniente usar FALSE en el parámetro fRedraw.
Como los mensajes que indican posiciones de barra de desplazamiento, WM_HSCROLL y WM_VSCROLL, están limitados a 16 bits para el dato de la posición, las aplicaciones que confían sólo en esos mensajes para actualizar las posiciones tienen un valor máximo de 65535 para el parámetro nMaxPos de la función SetScrollRange.
Sin embargo, como las funciones SetScrollPos, SetScrollRange, GetScrollPos y GetScrollRange soportan valores de 32-bit para la posición de la barra de desplazamiento, existe un modo de sortear la barrera de 16-bit de los mensajes WM_HSCROLL y WM_VSCROLL. Ver la función GetScrollPos para una descripción de esa técnica y de sus límites.