Función SetScrollRange (winuser.h)

La función SetScrollRange establece las posiciones del cuadro de desplazamiento mínimo y máximo para la barra de desplazamiento especificada.

Nota La función SetScrollRange se proporciona para la compatibilidad con versiones anteriores. Las nuevas aplicaciones deben usar la función SetScrollInfo .
 

Sintaxis

BOOL SetScrollRange(
  [in] HWND hWnd,
  [in] int  nBar,
  [in] int  nMinPos,
  [in] int  nMaxPos,
  [in] BOOL bRedraw
);

Parámetros

[in] hWnd

Tipo: HWND

Controle un control de barra de desplazamiento o una ventana con una barra de desplazamiento estándar, en función del valor del parámetro nBar .

[in] nBar

Tipo: int

Especifica la barra de desplazamiento que se va a establecer. Este parámetro puede ser uno de los valores siguientes.

Valor Significado
SB_CTL
Establece el intervalo de un control de barra de desplazamiento. El parámetro hwnd debe ser el identificador del control de barra de desplazamiento.
SB_HORZ
Establece el intervalo de la barra de desplazamiento horizontal estándar de una ventana.
SB_VERT
Establece el intervalo de la barra de desplazamiento vertical estándar de una ventana.

[in] nMinPos

Tipo: int

Especifica la posición de desplazamiento mínima.

[in] nMaxPos

Tipo: int

Especifica la posición de desplazamiento máxima.

[in] bRedraw

Tipo: BOOL

Especifica si se debe volver a dibujar la barra de desplazamiento para reflejar el cambio. Si este parámetro es TRUE, se vuelve a dibujar la barra de desplazamiento. Si es FALSE, la barra de desplazamiento no se vuelve a dibujar.

Valor devuelto

Tipo: BOOL

Si la función se realiza correctamente, el valor devuelto es distinto de cero.

Si la función no se realiza correctamente, el valor devuelto es cero. Para obtener información de error extendida, llame a GetLastError.

Comentarios

Puede usar SetScrollRange para ocultar la barra de desplazamiento estableciendo nMinPos y nMaxPos en el mismo valor. Una aplicación no debe llamar a la función SetScrollRange para ocultar una barra de desplazamiento mientras procesa un mensaje de barra de desplazamiento. Las nuevas aplicaciones deben usar la función ShowScrollBar para ocultar la barra de desplazamiento.

Si la llamada a SetScrollRange sigue inmediatamente una llamada a la función SetScrollPos , el parámetro bRedraw de SetScrollPos debe ser cero para evitar que la barra de desplazamiento se dibuje dos veces.

El intervalo predeterminado de una barra de desplazamiento estándar es de 0 a 100. El intervalo predeterminado de un control de barra de desplazamiento está vacío (los valores del parámetro nMinPos y nMaxPos son cero). La diferencia entre los valores especificados por los parámetros nMinPos y nMaxPos no debe ser mayor que el valor de MAXLONG.

Dado que los mensajes que indican la posición de la barra de desplazamiento, WM_HSCROLL y WM_VSCROLL, están limitados a 16 bits de datos de posición, las aplicaciones que dependen únicamente de esos mensajes para los datos de posición tienen un valor máximo práctico de 65 535 para el parámetro nMaxPos de la función SetScrollRange.

Sin embargo, dado que las funciones SetScrollInfo, SetScrollPos, SetScrollRange, GetScrollInfo, GetScrollPos y GetScrollRange admiten datos de posición de barra de desplazamiento de 32 bits, hay una manera de eludir la barrera de 16 bits de los mensajes de WM_HSCROLL y WM_VSCROLL . Consulte GetScrollInfo para obtener una descripción de la técnica.

Si el parámetro nBar es SB_CTL y la ventana especificada por el parámetro hWnd no es un control de barra de desplazamiento del sistema, el sistema envía el mensaje SBM_SETRANGE a la ventana para establecer la información de la barra de desplazamiento. Esto permite que SetScrollRange funcione en un control personalizado que imita una barra de desplazamiento. Si la ventana no controla el mensaje de SBM_SETRANGE , se produce un error en la función SetScrollRange .

Ejemplos

Para obtener un ejemplo, consulte Uso del formato del Portapapeles de Owner-Display.

Requisitos

Requisito Value
Cliente mínimo compatible Windows Vista [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2003 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado winuser.h (incluya Windows.h)
Library User32.lib
Archivo DLL User32.dll
Conjunto de API ext-ms-win-ntuser-misc-l1-2-0 (introducido en Windows 8.1)

Consulte también

GetScrollInfo

GetScrollPos

GetScrollRange

Referencia

SetScrollInfo

SetScrollPos

ShowScrollBar