Sdílet prostřednictvím


CWnd::OnHScroll

Rámci volání této funkce člena po klepnutí do okna vodorovného posuvníku.

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

Parametry

  • nSBCode
    Určuje, že posuvník kód, který označuje uživatele pro posouvání požadavku.Tento parametr může být jedna z následujících:

    • SB_LEFT přejděte zcela vlevo.

    • SB_ENDSCROLL konci posuvníku.

    • SB_LINELEFT posuvníku doleva.

    • SB_LINERIGHT doprava.

    • SB_PAGELEFT posun doleva na jedné stránce.

    • SB_PAGERIGHT posuvníku jednu stránku vpravo.

    • SB_RIGHT posuvníku na pravé.

    • SB_THUMBPOSITION absolutní pozice posuvníku.Aktuální pozice je určen nPos parametr.

    • SB_THUMBTRACK tažením posuvníku na určené pozici.Aktuální pozice je určen nPos parametr.

  • nPos
    Určuje pozici jezdce Pokud je kód posuvník SB_THUMBPOSITION nebo SB_THUMBTRACK; jinak není použit.V závislosti na rozsahu počáteční posun nPos může být záporná a měli přetypovat na int podle potřeby.

  • pScrollBar
    Pokud posuvníku pochází z ovládacího prvku posuvník, obsahuje ukazatel na ovládací prvek.Pokud by uživatel klepnul okno posuvníku, je tento parametr NULL.Ukazatel může být dočasné a neměli uložen pro pozdější použití.

Poznámky

SB_THUMBTRACK posuvníku čárový kód se obvykle používá aplikace, které poskytují některé názory při přetažení jezdce.

Pokud aplikace posouvá obsah řízena posuvníku, musí také obnovit pozice posuvníku s SetScrollPos členské funkce.

[!POZNÁMKA]

Tato funkce člena volá framework umožňující aplikaci pro zpracování zprávy systému Windows.Parametry předané funkce odrážejí parametry přijatých v rámci byla zpráva přijata.Že provádění volání třídy base provádění této funkce bude použita parametry původně předané zprávy a není zadané parametry funkce.

Příklad

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

Požadavky

Záhlaví: afxwin.h

Viz také

Referenční dokumentace

Třída CWnd

Diagram hierarchie

CWnd::SetScrollPos

CWnd::OnVScroll

WM_HSCROLL