CWnd::OnHScroll

Il framework chiama la funzione membro quando l'utente fa clic sulla barra di scorrimento orizzontale di una finestra.

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

Parametri

  • nSBCode
    Specifica un codice a barre che indica la richiesta di scorrimento dell'utente.Questo parametro può essere:

    • Scorrimento diSB_LEFT all'estremità sinistra.

    • Scorrimento della fine diSB_ENDSCROLL.

    • Scorrimento diSB_LINELEFT sinistra.

    • Destra dello scorrimento diSB_LINERIGHT.

    • Pagina di scorrimento uno diSB_PAGELEFT sinistra.

    • Destro della pagina di scorrimento uno diSB_PAGERIGHT.

    • Scorrimento diSB_RIGHT all'estrema destra.

    • Scorrimento diSB_THUMBPOSITION la posizione assoluta.La posizione corrente è specificata dal parametro nPos.

    • Casella di scorrimento di trascinamento diSB_THUMBTRACK la posizione specificata.La posizione corrente è specificata dal parametro nPos.

  • nPos
    Specifica la posizione della casella di scorrimento se il codice a barre è SB_THUMBPOSITION o SB_THUMBTRACK; in caso contrario, non utilizzato.A seconda dell'intervallo iniziale di scorrimento, nPos può essere negativo e deve essere eseguito il cast in int se necessario.

  • pScrollBar
    Se il messaggio di scorrimento ha da un controllo barra di scorrimento, contiene un puntatore al controllo.Se l'utente fa clic sulla barra di scorrimento di una finestra, questo parametro è NULL.Il puntatore può essere temporanei e non deve essere archiviata per un utilizzo successivo.

Note

Il codice a barre SB_THUMBTRACK in genere utilizzato dalle applicazioni che offrono alcuni commenti durante la casella di scorrimento è possibile trascinare.

Se l'applicazione scorre il contenuto controllato dalla barra di scorrimento, deve inoltre possibile reimpostare la posizione della casella di scorrimento con la funzione membro SetScrollPos.

[!NOTA]

Questa funzione membro viene chiamata dal framework per consentire l'applicazione per gestire un messaggio di Windows.I parametri passati alla funzione riflettono i parametri ricevuti dal framework quando il messaggio è stato ricevuto.Se si chiama l'implementazione della classe base di questa funzione, tale implementazione dei parametri passati originariamente con il messaggio e non i parametri forniti alla funzione.

Esempio

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);
}

Requisiti

Header: afxwin.h

Vedere anche

Riferimenti

Classe CWnd

Grafico della gerarchia

CWnd::SetScrollPos

CWnd::OnVScroll

WM_HSCROLL