Partager via


CWnd::OnHScroll

L'infrastructure appelle cette fonction membre lorsque l'utilisateur clique sur la barre de défilement horizontale d'une fenêtre.

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

Paramètres

  • nSBCode
    Spécifie un code à barres qui indique la demande de défilement de l'utilisateur. Ce paramètre peut avoir l'une des valeurs suivantes :

    • Défilement deSB_LEFT à l'extrême gauche.

    • Défilement de fin deSB_ENDSCROLL .

    • Défilement deSB_LINELEFT autorisé.

    • Droite de défilement deSB_LINERIGHT .

    • Page de défilement un deSB_PAGELEFT autorisée.

    • Droite de la page du défilement un deSB_PAGERIGHT .

    • Défilement deSB_RIGHT à l'extrême droite.

    • Défilement deSB_THUMBPOSITION à la position absolue. La position actuelle est spécifiée par le paramètre d' nPos .

    • Case de défilement de glisser-déplacer deSB_THUMBTRACK à la position spécifiée. La position actuelle est spécifiée par le paramètre d' nPos .

  • nPos
    Spécifie la position de case de défilement si le code à barres est SB_THUMBPOSITION ou SB_THUMBTRACK; sinon, non utilisé. Selon la plage initiale de défilement, nPos peut être négatif et doit être castées en int si nécessaire.

  • pScrollBar
    Si le message de défilement venait d'un contrôle de barre de défilement, contient un pointeur vers le contrôle. Si l'utilisateur a cliqué sur la barre de défilement d'une fenêtre, ce paramètre est NULL. Le pointeur peut être temporaire et ne doit pas être enregistré pour une utilisation ultérieure.

Notes

Le code à barres de SB_THUMBTRACK est généralement utilisé par les applications qui permettent de commentaires pendant que la case de défilement fait glisser.

Si une application fait défiler le contenu contrôlé par la barre de défilement, elle doit également réinitialiser la position de la case de défilement avec la fonction membre de SetScrollPos .

Notes

Cette fonction membre est appelée par l'infrastructure pour permettre à votre application de gérer un message de fenêtre.Les paramètres sont passés à la fonction reflètent les paramètres acceptés par l'infrastructure lorsque le message a été accepté.Si vous appelez l'implémentation de la classe de base de cette fonction, cette implémentation utilise les paramètres initialement passés avec le message et non les paramètres que vous fournissez à la fonction.

Exemple

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

Configuration requise

Header: afxwin.h

Voir aussi

Référence

CWnd, classe

Graphique de la hiérarchie

CWnd::SetScrollPos

CWnd::OnVScroll

WM_HSCROLL