Aracılığıyla paylaş


CWnd::OnHScroll

Kullanıcı bir pencerenin yatay kaydırma çubuğunu tıklattığında framework Bu üye işlevini çağırır.

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

Parametreler

  • nSBCode
    Kullanıcı belirten bir kaydırma çubuğu kod istek kaydırma belirtir. Bu parametre, aşağıdakilerden biri olabilir:

    • sb_left en sola gidin.

    • sb_endscroll son kaydırma.

    • SB_LINELEFT sola kaydırma.

    • SB_LINERIGHT sağa kaydırın.

    • sb_pageleft bir sayfa sola kaydırın.

    • SB_PAGERIGHT bir sayfa sağa kaydırma.

    • SB_RIGHT en sağdaki kaydırma.

    • SB_THUMBPOSITION mutlak konuma gidin. Geçerli konum ile belirtilen nPos parametresi.

    • sb_thumbtrack belirtilen konuma kaydırma kutusunu sürükleyin. Geçerli konum ile belirtilen nPos parametresi.

  • nPos
    Kaydırma çubuğu kodu ise kaydırma kutusunun konumu belirtir SB_THUMBPOSITION veya sb_thumbtrack; Aksi halde kullanılmaz. İlk kaydırma aralığına bağlı olarak nPos negatif ve almadaki bir int gerekirse.

  • pScrollBar
    Kaydırma iletiyi gelen kutusundan bir kaydırma çubuğu denetimi, denetim için bir işaretçi içerir. Kullanıcı bir pencerenin kaydırma çubuğu tıklatıldığında, bu parametre ise null. İşaretçiyi geçici olabilir ve daha sonra kullanmak üzere depolanması gereken değil.

Notlar

sb_thumbtrack scroll bar kod genelde kullanılan kaydırma kutusunu sürüklediğiniz sırada görüşü bazı uygulamalar tarafından.

Bir uygulama kaydırma çubuğu tarafından denetlenen içeriğini kaydıran, ile kaydırma kutusunun konumunu da sıfırlamalısınız SetScrollPos üye işlevi.

Not

Bu üye işlevi, uygulamanız Windows ileti işleme izin çerçevesi tarafından çağrılır.İleti alındığında çerçevesi tarafından alınan parametreleri, işleve iletilen parametreler yansıtır.Temel sınıf uygulaması, bu işlev çağrısı yaparsa, bu uygulama özgün iletiyi ve sağladığınız parametreleri ile işleve geçirilen parametreleri kullanır.

Örnek

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

Gereksinimler

Başlık: afxwin.h

Ayrıca bkz.

Başvuru

CWnd Sınıfı

Hiyerarşi grafik

CWnd::SetScrollPos

CWnd::OnVScroll

WM_HSCROLL