Compartilhar via


CWnd::OnHScroll

A estrutura chama essa função de membro quando o usuário clica na barra de rolagem horizontal de uma janela.

afx_msg void OnHScroll( 
   UINT nSBCode, 
   UINT nPos, 
   CScrollBar* pScrollBar  
);

Parâmetros

  • nSBCode
    Especifica um código de barra de rolagem que indica a solicitação de rolagem do usuário. Este parâmetro pode ser um dos seguintes:

    • Rolagem deSB_LEFT a extrema esquerda.

    • Rolagem no final deSB_ENDSCROLL .

    • Rolagem deSB_LINELEFT deixado.

    • Direito de rolagem deSB_LINERIGHT .

    • Scroll um página deSB_PAGELEFT deixada.

    • Direito da página de rolagem um deSB_PAGERIGHT .

    • Rolagem deSB_RIGHT a extrema direita.

    • Rolagem deSB_THUMBPOSITION posição absoluta. A posição atual é especificado pelo parâmetro de nPos .

    • A caixa de rolagem de arrasto deSB_THUMBTRACK posição especificada. A posição atual é especificado pelo parâmetro de nPos .

  • nPos
    Especifica a posição da caixa de rolagem se o código de barra de rolagem é SB_THUMBPOSITION ou SB_THUMBTRACK; caso contrário, não usado. Dependendo do intervalo inicial de rolagem, nPos pode ser negativo e deve ser convertido em int se necessário.

  • pScrollBar
    Se a mensagem de rolagem é provenientes de um controle barra de rolagem, contém um ponteiro para o controle. Se o usuário clicou na barra de rolagem de uma janela, este parâmetro é NULO. O ponteiro pode ser temporário e não deve ser armazenado para uso posterior.

Comentários

O código de barra de rolagem de SB_THUMBTRACK é normalmente usado por aplicativos que fornecem algum feedback quando a caixa de rolagem é arrastada.

Se um aplicativo colocar os conteúdos controlada pela barra de rolagem, também deve redefinir a posição da caixa de rolagem com a função de membro de SetScrollPos .

Dica

Essa função de membro é chamada pela estrutura para permitir que seu aplicativo manipule uma mensagem do windows.Parâmetros passados à sua função refletem os parâmetros recebidos pela estrutura quando a mensagem foi colocada.Se você chamar a implementação da classe base de essa função, essa implementação usará parâmetros passados originalmente com a mensagem e não os parâmetros que você fornece para a função.

Exemplo

void CMdiView::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
{
   // Get the minimum and maximum scroll-bar positions. 
   int minpos;
   int maxpos;
   GetScrollRange(SB_HORZ, &minpos, &maxpos); 
   maxpos = GetScrollLimit(SB_HORZ);

   // Get the current position of scroll box. 
   int curpos = GetScrollPos(SB_HORZ);

   // Determine the new position of scroll box. 
   switch (nSBCode)
   {
   case SB_LEFT:      // Scroll to far left.
      curpos = minpos;
      break;

   case SB_RIGHT:      // Scroll to far right.
      curpos = maxpos;
      break;

   case SB_ENDSCROLL:   // End scroll. 
      break;

   case SB_LINELEFT:      // Scroll left. 
      if (curpos > minpos)
         curpos--;
      break;

   case SB_LINERIGHT:   // Scroll right. 
      if (curpos < maxpos)
         curpos++;
      break;

   case SB_PAGELEFT:    // Scroll one page left.
   {
      // Get the page size. 
      SCROLLINFO   info;
      GetScrollInfo(SB_HORZ, &info, SIF_ALL);

      if (curpos > minpos)
      curpos = max(minpos, curpos - (int) info.nPage);
   }
      break;

   case SB_PAGERIGHT:      // Scroll one page right.
   {
      // Get the page size. 
      SCROLLINFO   info;
      GetScrollInfo(SB_HORZ, &info, SIF_ALL);

      if (curpos < maxpos)
         curpos = min(maxpos, curpos + (int) info.nPage);
   }
      break;

   case SB_THUMBPOSITION: // Scroll to absolute position. nPos is the position
      curpos = nPos;      // of the scroll box at the end of the drag operation. 
      break;

   case SB_THUMBTRACK:   // Drag scroll box to specified position. nPos is the
      curpos = nPos;     // position that the scroll box has been dragged to. 
      break;
   }

   // Set the new position of the thumb (scroll box).
   SetScrollPos(SB_HORZ, curpos);

   CView::OnHScroll(nSBCode, nPos, pScrollBar);
}

Requisitos

Cabeçalho: afxwin.h

Consulte também

Referência

CWnd Class

Gráfico da hierarquia

CWnd::SetScrollPos

CWnd::OnVScroll

WM_HSCROLL