Share via


CWnd::OnHScroll

El marco de trabajo llama a esta función miembro cuando el usuario hace clic en la barra de desplazamiento horizontal de una ventana.

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

Parámetros

  • nSBCode
    Especifica una clave de barras que indica la solicitud de desplazamiento del usuario.Este parámetro puede ser:

    • Desplazamiento deSB_LEFT al extremo izquierdo.

    • Desplazamiento del final deSB_ENDSCROLL .

    • Desplazamiento deSB_LINELEFT está desusado.

    • La derecha del desplazamiento deSB_LINERIGHT .

    • Página de desplazamiento uno deSB_PAGELEFT aplazada.

    • El lado derecho de la página de desplazamiento uno deSB_PAGERIGHT .

    • Desplazamiento deSB_RIGHT al extremo derecho.

    • Desplazamiento deSB_THUMBPOSITION a la posición absoluta.La posición actual es especificado por el parámetro de nPos .

    • Cuadro de desplazamiento de arrastre deSB_THUMBTRACK en la posición especificada.La posición actual es especificado por el parámetro de nPos .

  • nPos
    Especifica el cuadro de desplazamiento colocar si la clave de barras es SB_THUMBPOSITION o SB_THUMBTRACK; si no, no se utiliza.Dependiendo del rango inicial de desplazamiento, nPos puede ser negativo y se convierten a int en caso necesario.

  • pScrollBar
    Si el mensaje de desplazamiento proviene de un control de barra de desplazamiento, contiene un puntero al control.Si el usuario hizo clic en la barra de desplazamiento de una ventana, este parámetro es NULL.el puntero puede ser temporal y no se debe almacenar para su uso posterior.

Comentarios

La clave de barras de SB_THUMBTRACK se utiliza normalmente en aplicaciones que proporcionan una comentarios mientras se arrastra el cuadro de desplazamiento.

Si una aplicación desplaza el contenido dirigidos por la barra de desplazamiento, también debe restaurar la posición del cuadro de desplazamiento mediante la función miembro de SetScrollPos .

[!NOTA]

Esta función miembro llaman el marco para que la aplicación pueda controlar un mensaje de Windows.Los parámetros pasados a la función reflejan los parámetros recibidos por el marco cuando el mensaje se recibió.Si llama a la implementación de la clase base de esta función, esa implementación utilizará los parámetros pasados originalmente con el mensaje y no los parámetros que se proporciona a la función.

Ejemplo

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

Requisitos

encabezado: afxwin.h

Vea también

Referencia

Clase de CWnd

Gráfico de jerarquía

CWnd::SetScrollPos

CWnd::OnVScroll

WM_HSCROLL