CWnd::OnHScroll
Ramy wywołuje tej funkcji Członkowskich, gdy użytkownik kliknie pasek przewijania okna.
afx_msg void OnHScroll(
UINT nSBCode,
UINT nPos,
CScrollBar* pScrollBar
);
Parametry
nSBCode
Określa, że kod paska przewijania, który wskazuje użytkownika przewijanym żądania.Ten parametr może być jedną z następujących czynności:SB_LEFT przewijania do lewej.
SB_ENDSCROLL End przewijania.
SB_LINELEFT przewiń w lewo.
SB_LINERIGHT przewiń w prawo.
SB_PAGELEFT przewijania po lewej stronie jeden.
SB_PAGERIGHT przewijania jednej stronie prawej.
SB_RIGHT przewijania do prawej.
SB_THUMBPOSITION wskaż położenie bezwzględne.Bieżąca pozycja jest określona przez nPos parametru.
SB_THUMBTRACK przeciągnij pole przewijania do określonego położenia.Bieżąca pozycja jest określona przez nPos parametru.
nPos
Określa położenie pole przewijania, jeśli kod pasek przewijania jest SB_THUMBPOSITION lub SB_THUMBTRACK; w przeciwnym razie nie używane.W zależności od zakresu początkowej przewijania nPos może być ujemny i powinny być rzutowane na int w razie potrzeby.pScrollBar
Jeśli komunikat przewijania pochodzi z formantu paska przewijania, zawiera wskaźnik do formantu.Jeśli użytkownik kliknie pasek przewijania okna, ten parametr jest NULL.Wskaźnik może być tymczasowy i nie powinny być przechowywane w celu późniejszego użycia.
Uwagi
SB_THUMBTRACK kod pasek przewijania jest zazwyczaj używany przez aplikacje, które niektóre opinię podczas przeciągania suwaka przewijania.
Jeśli aplikacja Przewija zawartość kontrolowane przez pasek przewijania, go zresetować pozycja pola przewijania z SetScrollPos funkcji składowej.
[!UWAGA]
Ta funkcja Członkowskich jest wywoływana przez RAM, aby umożliwić aplikacji do obsługi wiadomości dla systemu Windows.Parametry przekazywane do funkcji odzwierciedlać parametry otrzymanych w ramach, kiedy wiadomość została odebrana.Wywołanie jest klasa bazowa wykonania tej funkcji, że realizacja zostanie użyte parametry pierwotnie przekazywane wiadomości i nie podane parametry funkcji.
Przykład
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);
}
Wymagania
Nagłówek: afxwin.h