winuser.h


SetScrollRange

La función SetScrollRange asigna los valores mínimo y máximo de los valores de posición de la barra de desplazamiento especificada. También puede ser usada para ocultar o mostrar una barra de desplazamiento estándar. 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

BOOL SetScrollRange(
    HWND  hwnd,    // manipulador de la ventana con la barra de desplazamiento
    int  fnBar,    // bandera de barra de desplazamiento
    int  nMinPos,  // posición mínima de desplazamiento
    int  nMaxPos,  // posición máxima de desplazamiento
    BOOL  fRedraw  // bandera de repintado
   ); 

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 Modifica el rango de un control de barra de desplazamiento. El parámetro hwnd debe ser el manipulador de un control de barra de desplazamiento.
SB_HORZ Modifica el rango de la barra de desplazamiento estándar horizontal de una ventana.
SB_VERT Modifica el rango de la barra de desplazamiento estándar vertical de una ventana.

nMinPos: especifica la posición mínima de desplazamiento.

nMaxPos: especifica la posición mínima de desplazamiento.

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 distinto de cero.

Si falla, el valor de retorno es cero. Para conseguir más información, se puede llamar a GetLastError.

Observaciones

Una aplicación no debellamar a la función SetScrollRange para ocultar una barra de desplazamiento mientras se procesa un mensaje de barra de desplazamiento.

Si la llamada a SetScrollRange está justo a continuación de una llamada a la función SetScrollPos, el parámetro fRedraw en SetScrollPos debe ser cero (FALSE) para evitar que la barra de desplazamiento se dibuje dos veces.

El rango por defecto de una barra de desplazamiento estándar es de 0 a 100. Para un control de barra de desplazamiento es nulo, ambos parámetros son cero: nMinPos y nMaxPos. La diferencia de valores especificados por nMinPos y nMaxPos no debe ser mayor del valor de MAXLONG.

Como los mensajes que indican posiciones de una 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 GetScrollPos para ver una descripción de esa técnica y de sus límites.