Freigeben über


CWnd::OnHScroll

Das Framework ruft diese Memberfunktion auf, wenn der Benutzer auf die horizontale Bildlaufleiste eines Fensters klickt.

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

Parameter

  • nSBCode
    Gibt einen Strichkode an, der die Bildlaufanforderung des Benutzers angibt.Dieser Parameter sind zulässig:

    • SB_LEFT ROLLEN nach links Linksextreme.

    • SB_ENDSCROLL Endenbildlauf.

    • SB_LINELEFT ROLLEN fehlgeschlagen ist.

    • rechts SB_LINERIGHT ROLLEN.

    • SB_PAGELEFT ROLLEN eine Seite verlassen.

    • SB_PAGERIGHT ROLLEN ein Seitenrecht.

    • SB_RIGHT ROLLEN rechts Farbe.

    • SB_THUMBPOSITION ROLLEN zur absoluten Position.Die aktuelle Position wird durch den nPos-Parameter angegeben.

    • SB_THUMBTRACK Ziehbildlauffeld zur angegebenen Position.Die aktuelle Position wird durch den nPos-Parameter angegeben.

  • nPos
    Gibt die Bildlauffeldposition an, wenn der Strichkode SB_THUMBPOSITION oder SB_THUMBTRACK ist; andernfalls nicht verwendet.Abhängig vom ursprünglichen Bildlaufbereich ist möglicherweise nPos und sollte auf int ggf. umgewandelt werden negativ.

  • pScrollBar
    Wenn die Bildlaufmeldung von einem ScrollBar-Steuerelement stammt, enthält einen Zeiger auf das Steuerelement.Wenn der Benutzer auf die Bildlaufleiste eines Fensters geklickt hat, ist dieser Parameter NULL.Der Zeiger kann und sollte nicht für die spätere Verwendung gespeichert werden temporär.

Hinweise

Der SB_THUMBTRACK Strichkode normalerweise wird von Anwendungen verwendet, die einige Feedback geben, während das Bildlauffeld gezogen wird.

Wenn eine Anwendung den Inhalt durch Vergrößern, der durch die Bildlaufleiste gesteuert wird, muss sie die Position des Bildlauffelds mit der SetScrollPos-Memberfunktion auch zurücksetzen.

HinweisHinweis

Diese Memberfunktion wird vom Framework aufgerufen, um die Anwendung zu ermöglichen, eine Windows-Meldung zu bearbeiten.Die Parameter, die an die Funktion übergeben werden, geben die Parameter, die vom Framework empfangen werden, als die Nachricht empfangen wurde.Wenn Sie die Basisklassenimplementierung dieser Funktion aufrufen, verwendet diese Implementierung die Parameter, die mit der Meldung übergeben werden und nicht die Parameter, die an die Funktion bereitstellen.

Beispiel

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

Anforderungen

Header: afxwin.h

Siehe auch

Referenz

CWnd-Klasse

Hierarchien-Diagramm

CWnd::SetScrollPos

CWnd::OnVScroll

WM_HSCROLL