Поделиться через


CWnd::OnHScroll

Платформа вызывает функцию этот функцию-член, когда пользователь щелкает горизонтальная полоса прокрутки окна.

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

Параметры

  • nSBCode
    Указывает код штриховой маркировки, указывающее запрос прокрутки пользователя. Этот параметр может быть одним из следующих:

    • Прокрутка SB_LEFT с левым радикалам.

    • Прокрутка SB_ENDSCROLL элемент.

    • Выйденная прокрутка SB_LINELEFT.

    • Право прокрутки SB_LINERIGHT.

    • Выйденная прокрутка страницы одного SB_PAGELEFT.

    • Прокрутка страницы вправо одного SB_PAGERIGHT.

    • Прокрутка SB_RIGHT к крайне правое.

    • Прокрутка SB_THUMBPOSITION с абсолютной позиции. Текущая позиция указывается параметром nPos.

    • Перетащите ползунок полосы прокрутки SB_THUMBTRACK в указанной позиции. Текущая позиция указывается параметром nPos.

  • nPos
    Указывает положение ползунка полосы прокрутки, если код штриховой маркировка SB_THUMBPOSITION или SB_THUMBTRACK; в противном случае не используемый. В зависимости от первоначального диапазона прокрутки nPos может быть отрицательным и должно быть приводитьо к int если требуемый.

  • pScrollBar
    Если сообщение пришло от прокрутки элемента управления "полоса прокрутки", содержит указатель к элементу управления. Если пользователь нажимает полоса прокрутки окна, то этот параметр NULL. Указатель может быть временным и не должен сохранить для последующего использования.

Заметки

Пометка кода штриховой SB_THUMBTRACK обычно используется приложениями, которые предоставляют некоторый отклик пока ползунок полосы прокрутки перетаскивание.

Если приложение выполняет прокрутку содержимого в системе управления полосой прокрутки, оно должно также сбросить положение ползунка полосы прокрутки с функцией-членом SetScrollPos.

Примечание

Это функция-член вызывается платформой, чтобы разрешить приложению обработать сообщение Windows.Параметры, передаваемые функции отражают параметры, получаемые платформой, когда сообщение было получено.При вызове реализации базового класса этой функции, то эта реализация будет использовать параметры изначально, переданные с сообщением, а не параметры указываются в функции.

Пример

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

Требования

Header: afxwin.h

См. также

Ссылки

Класс CWnd

Диаграмма иерархии

CWnd::SetScrollPos

CWnd::OnVScroll

WM_HSCROLL