CScrollView::SetScrollSizes
Appelez SetScrollSizes lorsque la vue est sur le point d'être mise à jour.
void SetScrollSizes(
int nMapMode,
SIZE sizeTotal,
const SIZE& sizePage = sizeDefault,
const SIZE& sizeLine = sizeDefault
);
Paramètres
nMapMode
Le mode de mappage à définir pour cette vue.Les valeurs possibles sont les suivantes :Mode de mappage
Unité logique
L'axe des ordonnées positives étend…
MM_TEXT
1 pixel
Le bas
MM_HIMETRIC
0,01 mm
Arrière
MM_TWIPS
1/1440 po
Arrière
MM_HIENGLISH
0,001 dans
Arrière
MM_LOMETRIC
0,1 mm
Arrière
MM_LOENGLISH
0,01 dans
Arrière
Tous ces vues sont définis par windows.Deux modes de mappage standard, MM_ISOTROPIC et MM_ANISOTROPIC, ne sont pas utilisés pour CScrollView.La bibliothèque de classes fournit la fonction membre d' SetScaleToFitSize pour mettre à l'échelle la vue à la taille de la fenêtre.La colonne trois dans le tableau ci-dessus décrit l'orientation de coordonnées.
sizeTotal
La taille totale de la zone de défilement.Le membre de cx contient l'étendue horizontale.Le membre de CY contient l'étendue verticale.Les tailles sont en unités logiques.cx et CY doivent être supérieure ou égale à 0.sizePage
Les quantités horizontale et verticale au défilement dans chaque direction en réponse à un clic de souris dans un axe de barre de défilement.Le membre de cx contient la quantité horizontale.Le membre de CY contient la quantité verticale.sizeLine
Les quantités horizontale et verticale au défilement dans chaque direction en réponse à un clic de souris dans une flèche de défilement.Le membre de cx contient la quantité horizontale.Le membre de CY contient la quantité verticale.
Notes
Appelez la dans votre substitution de la fonction membre d' OnUpdate pour ajuster les caractéristiques de défilement lorsque, par exemple, le document est initialement rendu ou lorsqu'il modifie la taille.
Vous obtiendrez généralement des informations de taille du document associé à la vue en appelant une fonction membre de document, un GetMyDocSizepeut-être appelé, que vous fournissez votre classe dérivée de document.Le code suivant illustre cette méthode :
CMyScrollDoc* pMyDoc = (CMyScrollDoc*)GetDocument();
SetScrollSizes(nMapMode, pMyDoc->GetMyDocSize());
Sinon, vous pouvez parfois définir une taille fixe, comme dans le code suivant :
SetScrollSizes(nMapMode, CSize(100, 100));
Vous devez définir le mode de mappage aux modes de mappage l'un des fenêtres sauf MM_ISOTROPIC ou MM_ANISOTROPIC.Si vous souhaitez utiliser un mode de mappage sans contrainte, appelez la fonction membre d' SetScaleToFitSize au lieu d' SetScrollSizes.
Exemple
void CMyScrollView::OnUpdate(CView* /*pSender*/, LPARAM /*lHint*/,
CObject* /*pHint*/)
{
// Implement a GetMyDocSize() member function in
// your document class; it returns a CSize.
CMyScrollDoc* pMyDoc = (CMyScrollDoc*)GetDocument();
SetScrollSizes(MM_LOENGLISH, pMyDoc->GetMyDocSize());
ResizeParentToFit(); // Default bShrinkOnly argument
}
void CMyScrollView::OnInitialUpdate()
{
CScrollView::OnInitialUpdate();
// The GetMyDocSize() member function is implemented in
// your document class. The return type is CSize.
CMyScrollDoc* pMyDoc = (CMyScrollDoc*)GetDocument();
SetScrollSizes(MM_TEXT, pMyDoc->GetMyDocSize());
}
Configuration requise
Header: afxwin.h
Voir aussi
Référence
CScrollView::SetScaleToFitSize