Função SetScrollRange (winuser.h)
A função SetScrollRange define as posições mínimas e máximas da caixa de rolagem para a barra de rolagem especificada.
Sintaxe
BOOL SetScrollRange(
[in] HWND hWnd,
[in] int nBar,
[in] int nMinPos,
[in] int nMaxPos,
[in] BOOL bRedraw
);
Parâmetros
[in] hWnd
Tipo: HWND
Manipule para um controle de barra de rolagem ou uma janela com uma barra de rolagem padrão, dependendo do valor do parâmetro nBar .
[in] nBar
Tipo: int
Especifica a barra de rolagem a ser definida. Esse parâmetro pode usar um dos valores a seguir.
[in] nMinPos
Tipo: int
Especifica a posição mínima de rolagem.
[in] nMaxPos
Tipo: int
Especifica a posição máxima de rolagem.
[in] bRedraw
Tipo: BOOL
Especifica se a barra de rolagem deve ser redesenhada para refletir a alteração. Se esse parâmetro for TRUE, a barra de rolagem será redesenhada. Se for FALSE, a barra de rolagem não será redesenhada.
Retornar valor
Tipo: BOOL
Se a função for bem-sucedida, o valor retornado será diferente de zero.
Se a função falhar, o valor retornado será zero. Para obter informações de erro estendidas, chame GetLastError.
Comentários
Você pode usar SetScrollRange para ocultar a barra de rolagem definindo nMinPos e nMaxPos com o mesmo valor. Um aplicativo não deve chamar a função SetScrollRange para ocultar uma barra de rolagem ao processar uma mensagem de barra de rolagem. Novos aplicativos devem usar a função ShowScrollBar para ocultar a barra de rolagem.
Se a chamada para SetScrollRange seguir imediatamente uma chamada para a função SetScrollPos , o parâmetro bRedraw em SetScrollPos deverá ser zero para impedir que a barra de rolagem seja desenhada duas vezes.
O intervalo padrão para uma barra de rolagem padrão é de 0 a 100. O intervalo padrão para um controle de barra de rolagem está vazio (os valores de parâmetro nMinPos e nMaxPos são zero). A diferença entre os valores especificados pelos parâmetros nMinPos e nMaxPos não deve ser maior que o valor de MAXLONG.
Como as mensagens que indicam a posição da barra de rolagem, WM_HSCROLL e WM_VSCROLL, são limitadas a 16 bits de dados de posição, os aplicativos que dependem apenas dessas mensagens para dados de posição têm um valor máximo prático de 65.535 para o parâmetro nMaxPos da função SetScrollRange.
No entanto, como as funções SetScrollInfo, SetScrollPos, SetScrollRange, GetScrollInfo, GetScrollPos e GetScrollRange dão suporte a dados de posição da barra de rolagem de 32 bits, há uma maneira de contornar a barreira de 16 bits das mensagens de WM_HSCROLL e WM_VSCROLL . Consulte GetScrollInfo para obter uma descrição da técnica.
Se o parâmetro nBar for SB_CTL e a janela especificada pelo parâmetro hWnd não for um controle de barra de rolagem do sistema, o sistema enviará a mensagem SBM_SETRANGE para a janela para definir informações da barra de rolagem. Isso permite que SetScrollRange opere em um controle personalizado que imita uma barra de rolagem. Se a janela não manipular a mensagem SBM_SETRANGE , a função SetScrollRange falhará.
Exemplos
Para obter um exemplo, consulte Usando o formato da área de transferência Owner-Display.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows Vista [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows Server 2003 [somente aplicativos da área de trabalho] |
Plataforma de Destino | Windows |
Cabeçalho | winuser.h (inclua Windows.h) |
Biblioteca | User32.lib |
DLL | User32.dll |
Conjunto de APIs | ext-ms-win-ntuser-misc-l1-2-0 (introduzido em Windows 8.1) |
Confira também
Referência