Compartilhar via


Função GetScrollInfo (winuser.h)

A função GetScrollInfo recupera os parâmetros de uma barra de rolagem, incluindo as posições de rolagem mínima e máxima, o tamanho da página e a posição da caixa de rolagem (polegar).

Sintaxe

BOOL GetScrollInfo(
  [in]      HWND         hwnd,
  [in]      int          nBar,
  [in, out] LPSCROLLINFO lpsi
);

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 fnBar .

[in] nBar

Tipo: int

Especifica o tipo de barra de rolagem para a qual recuperar parâmetros. Esse parâmetro pode usar um dos valores a seguir.

Valor Significado
SB_CTL
Recupera os parâmetros de um controle de barra de rolagem. O parâmetro hwnd deve ser o identificador para o controle de barra de rolagem.
SB_HORZ
Recupera os parâmetros da barra de rolagem horizontal padrão da janela.
SB_VERT
Recupera os parâmetros da barra de rolagem vertical padrão da janela.

[in, out] lpsi

Tipo: LPSCROLLINFO

Ponteiro para uma estrutura SCROLLINFO . Antes de chamar GetScrollInfo, defina o membro cbSize como sizeof (SCROLLINFO) e defina o membro fMask para especificar os parâmetros da barra de rolagem a serem recuperados. Antes de retornar, a função copia os parâmetros especificados para os membros apropriados da estrutura.

O membro fMask pode ser um ou mais dos valores a seguir.

Valor Significado
SIF_PAGE
Copia a página de rolagem para o membro nPage da estrutura SCROLLINFO apontada por lpsi.
SIF_POS
Copia a posição de rolagem para o membro nPos da estrutura SCROLLINFO apontada por lpsi.
SIF_RANGE
Copia o intervalo de rolagem para os membros nMin e nMax da estrutura SCROLLINFO apontada por lpsi.
SIF_TRACKPOS
Copia a posição de acompanhamento da caixa de rolagem atual para o membro nTrackPos da estrutura SCROLLINFO apontada por lpsi.

Retornar valor

Tipo: BOOL

Se a função recuperou valores, o valor retornado será diferente de zero.

Se a função não recuperar nenhum valor, o valor retornado será zero. Para obter informações de erro estendidas, chame GetLastError.

Comentários

A função GetScrollInfo permite que os aplicativos usem posições de rolagem de 32 bits. Embora as mensagens que indicam a posição da barra de rolagem, WM_HSCROLL e WM_VSCROLL, forneçam apenas 16 bits de dados de posição, as funções SetScrollInfo e GetScrollInfo fornecem 32 bits de dados de posição da barra de rolagem. Assim, um aplicativo pode chamar GetScrollInfo durante o processamento das mensagens de WM_HSCROLL ou WM_VSCROLL para obter dados de posição da barra de rolagem de 32 bits.

Para obter a posição de 32 bits da caixa de rolagem (polegar) durante um código de solicitação SB_THUMBTRACK em uma mensagem WM_HSCROLL ou WM_VSCROLL , chame GetScrollInfo com o valor SIF_TRACKPOS no membro fMask da estrutura SCROLLINFO . A função retorna a posição de acompanhamento da caixa de rolagem no membro nTrackPos da estrutura SCROLLINFO . Isso permite que você obtenha a posição da caixa de rolagem à medida que o usuário a move. O código de exemplo a seguir ilustra a técnica.

SCROLLINFO si;
case WM_HSCROLL:
    switch(LOWORD(wparam)) {
        case SB_THUMBTRACK:
          // Initialize SCROLLINFO structure
 
            ZeroMemory(&si, sizeof(si));
            si.cbSize = sizeof(si);
            si.fMask = SIF_TRACKPOS;
 
          // Call GetScrollInfo to get current tracking 
          //    position in si.nTrackPos
 
            if (!GetScrollInfo(hwnd, SB_HORZ, &si) )
                return 1; // GetScrollInfo failed
            break;
        .
        .
        .
    }

Se o parâmetro fnBar 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_GETSCROLLINFO para a janela para obter informações da barra de rolagem. Isso permite que GetScrollInfo opere em um controle personalizado que imita uma barra de rolagem. Se a janela não manipular a mensagem SBM_GETSCROLLINFO , a função GetScrollInfo falhará.

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

SCROLLINFO

Setscrollinfo

WM_HSCROLL

WM_VSCROLL