
La classe CScrollView est un CView avec capacités de défilement.
Vous pouvez gérer standard vous défilement dans toute classe dérivée de CView en substituant les message mappé fonctions membres OnHScroll et OnVScroll fonctions membres. Mais CScrollView ajoute les fonctionnalités suivantes à ses capacités de CView:
Vous pouvez gérer vous-même défilement en substituant les message mappé OnMouseWheel OnRegisteredMouseWheel fonctions membres et la roulette de souris. Comme ils sont pour CScrollView, ces fonctions membres soutiennent le comportement recommandé pour WM_MOUSEWHEEL, le message de rotation des roues.
Pour profiter de défilement automatique, dérivez votre classe de vue de CScrollView au lieu de partir de CView. Lorsque la vue est créée tout d'abord, si vous voulez calculer la taille de l'affichage à défilement basé sur la taille du document, appelez la fonction membre SetScrollSizes de votre substitution de CView::OnInitialUpdate ou CView::OnUpdate. (Vous devez écrire votre propre code pour interroger la taille du document. Pour obtenir un exemple, voir Amélioration vues dans Visual C++ tutoriaux.)
L'appel à la fonction membre SetScrollSizes définit le mode de mappage de la vue, les dimensions totales de l'affichage à défilement et les montants pour faire défiler horizontalement et verticalement. Toutes les tailles sont en unités logiques. La taille logique de la vue est habituellement calculée des données stockées dans le document, mais dans certains cas, vous pouvez spécifier une taille fixe. Pour des exemples des deux approches, consultez CScrollView::SetScrollSizes.
Vous spécifiez les quantités pour faire défiler horizontalement et verticalement en unités logiques. Par défaut, si l'utilisateur clique sur un axe de barre de défilement à l'extérieur de la case de défilement, CScrollView défile une « page ». Si l'utilisateur clique sur une flèche de défilement à chaque extrémité d'une barre de défilement, CScrollView défile une « ligne ». Par défaut, une page est de 1/10 de la taille totale de la vue ; une ligne est de 1/10 de la taille de la page. Remplacer ces valeurs par défaut en passant les tailles personnalisées dans la fonction membre SetScrollSizes . Par exemple, vous pouvez définir la taille horizontale à une fraction de la largeur de la taille totale et la taille verticale de la hauteur d'une ligne dans la police courante.
Au lieu de défilement, CScrollView peut évoluer automatiquement de l'affichage de la taille de la fenêtre actuelle. Dans ce mode, le point de vue n'a aucune barres de défilement et la vue logique est étirée ou rétrécie pour s'adapter exactement à la zone client de la fenêtre. Pour utiliser cette fonctionnalité de l'échelle d'ajustement, appelez CScrollView::SetScaleToFitSize. (Composez le SetScaleToFitSize ou SetScrollSizes, mais pas les deux).
Avant la OnDraw est appelée la fonction de membre de votre classe dérivée de point de vue, CScrollView ajuste automatiquement l'origine de la fenêtre d'affichage pour l'objet de contexte de périphérique CPaintDC qu'il transmet àOnDraw.
Pour ajuster l'origine de la fenêtre d'affichage de la fenêtre de défilement, CScrollView substitue CView::OnPrepareDC. Ce réglage est automatique pour le contexte de périphérique CPaintDC CScrollView passe à OnDraw , mais vous devez appeler CScrollView::OnPrepareDC vous-même pour toute autres contextes de périphérique vous utilisez, comme un CClientDC. Vous pouvez substituer CScrollView::OnPrepareDC à définir la plume, couleur d'arrière-plan et autres attributs de dessin, mais appelez la classe de base pour faire la mise à l'échelle.
Barres de défilement peuvent apparaître dans trois endroits différents par rapport à un point de vue, comme indiqué dans les cas suivants:
Pour plus d'informations sur l'utilisation de CScrollView, voir Sujets d'Architecture Document/vue et Classes dérivées d'affichage dans le Guide du programmeur Visual C++.
# include lt;afxwin.h>
Membres de la classe |  ; Classe de base | Graphique de la hiérarchie
Écha&ntillonnbsp ; MFC exemple DIBLOOK
Voir aussi  ;CView, CSplitterWnd