winuser.h


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.