다음을 통해 공유


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

요구 사항

헤더: afxwin.h

참고 항목

참조

CWnd 클래스

계층 구조 차트

CWnd::SetScrollPos

CWnd::OnVScroll

WM_HSCROLL