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