Condividi tramite


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 delle gerarchie

CWnd::SetScrollPos

CWnd::OnVScroll

WM_HSCROLL