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.
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.
[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
Referencia