CScrollView

La classe CScrollView è un CView con le funzionalità di scorrimento.

È possibile gestire scorrimento standard voi stessi in qualsiasi classe derivata da CView eseguendo l'override del messaggio mappata OnHScroll OnVScroll funzioni membro e. Ma CScrollView aggiunge le funzionalità seguenti per le sue capacità di CView:

È possibile gestire la rotellina del mouse, te lo scorrimento eseguendo l'override del messaggio mappata OnMouseWheel OnRegisteredMouseWheel funzioni membro e. Come lo sono per CScrollView, queste funzioni membro supportano il comportamento raccomandato per WM_MOUSEWHEEL, il messaggio di rotazione della ruota.

Per usufruire di scorrimento automatico, derivare la classe vista da CScrollView anziché da CView. Quando la vista viene creata in primo luogo, se si desidera calcolare la dimensione della visualizzazione scorrevole in base alle dimensioni del documento, chiamare la funzione membro SetScrollSizes dall'override di CView::OnInitialUpdate o CView::OnUpdate. (È necessario scrivere il proprio codice per interrogare le dimensioni del documento. Per un esempio, vedere Migliorare viste in Visual C++ tutorial.)

La chiamata alla funzione membro SetScrollSizes imposta la modalità di mapping della visualizzazione, le dimensioni totali della visualizzazione a scorrimento e gli importi di scorrere orizzontalmente e verticalmente. Tutte le dimensioni sono in unità logiche. La dimensione logica della vista di solito viene calcolata dai dati memorizzati nel documento, ma in alcuni casi si consiglia di specificare una dimensione fissa. Per esempi di entrambi gli approcci, vedere CScrollView::SetScrollSizes.

Specificare gli importi per lo scorrimento orizzontale e verticale in unità logiche. Per impostazione predefinita, se l'utente fa clic su un albero di barra di scorrimento di fuori della casella di scorrimento, CScrollView scorre una "pagina". Se l'utente fa clic su una freccia di scorrimento ad entrambe le estremità di una barra di scorrimento, CScrollView scorre una "linea". Per impostazione predefinita, una pagina è 1/10 la dimensione totale della vista; una linea è 1/10 di dimensione della pagina. Eseguire l'override di questi valori predefiniti mediante il passaggio su misura la funzione membro SetScrollSizes . Ad esempio, è possibile impostare la dimensione orizzontale per qualche frazione della larghezza della dimensione totale e la dimensione verticale all'altezza di una riga nel font corrente.

Invece di scorrimento, CScrollView potete ridimensionare automaticamente la visualizzazione per la dimensione della finestra corrente. In questa modalità, la vista non dispone barre di scorrimento e visualizzazione logica è allungata o ridotto a esattamente adatta area client della finestra. Per utilizzare questa funzionalità scala-to-fit, chiamare CScrollView::SetScaleToFitSize. (Chiamare SetScaleToFitSize o SetScrollSizes, ma non entrambi).

Prima il OnDraw viene chiamata la funzione membro della classe derivata vista, CScrollView regola automaticamente l'origine del riquadro di visualizzazione per l'oggetto di contesto di periferica CPaintDC che passa allaOnDraw.

Per regolare l'origine del riquadro di visualizzazione per la finestra a scorrimento, CScrollView esegue l'override di CView::OnPrepareDC. Questa regolazione è automatica per il contesto di periferica CPaintDC che CScrollView passa a OnDraw , ma deve chiamare CScrollView::OnPrepareDC te stesso per qualsiasi altri contesti di dispositivo utilizza, come ad esempio un CClientDC. Si possono eseguire l'override di CScrollView::OnPrepareDC per impostare la penna, il colore di sfondo e altri attributi di disegno, ma chiamare la classe base per fare scala.

Barre di scorrimento possono apparire in tre luoghi relativo a una visione, come illustrato nei seguenti casi:

Per ulteriori informazioni sull'utilizzo di CScrollView, vedere Argomenti architettura documento/vista e Classi derivate da vista nel manuale del programmatore di Visual C++.

# include lt;afxwin.h>

Membri della classeClasse base | Gerarchia Chart

Campio&nenbsp; Esempio MFC DIBLOOK

Vedere a&nchenbsp;CView, CSplitterWnd

Index