La classe CView fornisce la funzionalità di base per le classi di visualizzazione definiti dall'utente. Una vista è collegata a un documento e agisce come un intermediario tra il documento e l'utente: la vista esegue il rendering di un'immagine del documento sullo schermo o stampante e interpreta l'input dell'utente come operazioni sul documento.
Una vista è un figlio di una finestra cornice. Più di una vista può condividere una finestra cornice, come nel caso di una finestra con separatore. La relazione tra una classe di visualizzazione, una classe di finestra di telaio e una classe di documento è stabilita da un oggetto CDocTemplate . Quando l'utente apre una nuova finestra o si divide un esistente uno, il framework crea una nuova visualizzazione e si attacca al documento.
Una vista può essere collegata a un solo documento, ma un documento può avere più visualizzazioni collegati ad esso in una sola volta — ad esempio, se il documento viene visualizzato in una finestra con separatore o in finestre multiple del bambino in un'applicazione di multiple document interface (MDI). L'applicazione può supportare diversi tipi di visualizzazioni per un tipo di documento specifico. ad esempio, un programma di elaborazione potrebbe fornire una visualizzazione di testo completo di un documento sia una visualizzazione struttura che mostra solo le intestazioni della sezione. Questi diversi tipi di punti di vista possono essere collocati in finestre cornice separata o in riquadri separati di una finestra di singolo fotogramma se si utilizza una finestra con separatore.
Una vista può essere responsabile per la gestione di diversi tipi di input, come input da tastiera, mouse di input o ingresso tramite drag-and-drop, come pure i comandi da menu, barre degli strumenti o le barre di scorrimento. Una vista riceve gli ordini inoltrati dalla sua finestra cornice. Se la vista non gestisce un determinato comando, inoltra il comando per il suo documento associato. Come tutti gli obiettivi di comando, una vista gestisce i messaggi tramite una mappa messaggi.
La vista è responsabile per la visualizzazione e la modifica dei dati del documento, ma non per conservarla. Il documento fornisce la vista con le informazioni sui suoi dati. È possibile consentire l'accesso di vista che membri dati del documento direttamente, oppure è in grado di fornire funzioni membro della classe documento per la classe di visualizzazione chiamare.
Modifiche ai dati di un documento, la vista è responsabile per i cambiamenti in genere chiama la funzione CDocument per il documento, che notifica tutte le visualizzazioni chiamando la funzione membro OnUpdate per ciascuno. L'implementazione predefinita di OnUpdate invalida intera area client della vista. Si possono eseguire l'override di invalidare solo quelle regioni dell'area client che le parti modificate del documento il mapping.
Per utilizzare CView, derivare una classe da esso e implementare la funzione membro OnDraw per eseguire la visualizzazione su schermo. È inoltre possibile utilizzare OnDraw per eseguire l'anteprima di stampa e stampa. Il framework gestisce il ciclo di stampa per la stampa e la visualizzazione in anteprima il documento.
Una vista gestisce i messaggi di barra di scorrimento con le funzioni membro CWnd::OnHScroll e CWnd::OnVScroll . È possibile implementare la gestione in queste funzioni di messaggi di barra di scorrimento, oppure è possibile utilizzare la classe derivata CView CScrollView per gestire lo scorrimento per te.
Inoltre CScrollView, Microsoft Foundation Class Library offre nove altre classi derivate da CView:
La classe CView ha anche una classe di implementazione derivata denominata CPreviewView, che viene utilizzata dal framework per eseguire l'anteprima di stampa. Questa classe fornisce il supporto per le caratteristiche uniche per la finestra di anteprima di stampa, come ad esempio una barra degli strumenti, anteprima di pagina singola o doppia, e lo zoom, che è, ingrandire l'immagine di anteprima. &Non è necessario chiamare o eseguire l'override di qualsiasi delle funzioni membro di CPreviewViewse non si desidera implementare un'interfaccia per la stampa previewnbsp; (ad esempio, se si desidera supportare la modifica in modalità di anteprima di stampa). Per ulteriori informazioni sull'utilizzo di CView, vedere Argomenti architettura documento/vista e stampa nel manuale del programmatore di Visual C++. Per ulteriori informazioni sulla personalizzazione di anteprima di stampa inoltre, vedere tecnica nota 30.
# include lt;afxwin.h>
Membri della classe | Classe base | Gerarchia Chart
Campioninbsp; Esempio MFC HELLO | Esempio MFC MDIBIND | Esempio MFC MDIDOCVW
Vedere a&nchenbsp;CWnd, CFrameWnd, CSplitterWnd, CDC, CDocTemplate, CDocument