Condividi tramite


Alternative all'architettura documento/visualizzazione

Le applicazioni MFC in genere utilizzano l'architettura documento/visualizzazione per gestire le informazioni, i formati di file e la rappresentazione visiva dei dati per gli utenti.Per la maggior parte delle applicazioni desktop, l'architettura documento/visualizzazione è un'architettura appropriata ed efficiente dell'applicazione.Questa architettura consente di separare i dati dalla visualizzazione e, nella maggior parte dei casi, semplifica l'applicazione e riduce il codice ridondante.

Tuttavia, l'architettura documento/visualizzazione non è adatta per alcune situazioni.Considerare questi esempi:

  • Se si effettua il porting di un'applicazione scritta in C di windows, è necessario completare la porta prima di aggiungere il supporto documento/visualizzazione all'applicazione.

  • Se si sta scrivendo un'utilità leggera, è possibile che è possibile apportare a meno dell'architettura documento/visualizzazione.

  • Se il codice originale già scrum la gestione dei dati visualizzazione dei dati, spostare il codice nel modello documento/visualizzazione non è opportuno l'impegno perché è necessario separare i due.È preferibile lasciare il codice come è.

Per creare un'applicazione che non utilizza l'architettura documento/visualizzazione, deselezionare la casella di controllo di Supporto architettura documento/visualizzazione al passaggio 1 della Creazione guidata applicazione MFC.Vedere Creazione guidata applicazione MFC per i dettagli.

[!NOTA]

Le applicazioni a finestre prodotte dalla Creazione guidata applicazione MFC non utilizzano l'architettura documento/visualizzazione, in modo dalla casella di controllo di Supporto architettura documento/visualizzazione è disabilitato se si seleziona il tipo di applicazione della finestra di dialogo.

Le procedure guidate di Visual C++ nonché editor della finestra di dialogo e di origine, utilizzare l'applicazione compilata come per qualsiasi altra applicazione generata dalla procedura guidata.L'applicazione può supportare le barre degli strumenti, barre di scorrimento e una barra di stato e con una casella Informazioni su .L'applicazione non verrà registrato alcuni modelli di documento e non sarà contenuta una classe del documento.

Si noti che l'applicazione generata ha una classe di visualizzazione, CChildView, derivato da CWnd.MFC crea e posiziona un'istanza della classe di visualizzazione nelle applicazioni utilizzano creato dall'applicazione.MFC è applicata utilizzando una finestra di visualizzazione, in quanto semplifica il posizionamento e la gestione del contenuto dell'applicazione.È possibile aggiungere il codice di disegno al membro di OnPaint di questa classe.Il codice dovrebbe aggiungere le barre di scorrimento nella visualizzazione anziché al frame.

Poiché l'architettura documento/visualizzazione fornita da MFC è responsabile dell'implementare molte delle funzionalità di base di un'applicazione, non è disponibile nel progetto significa che è responsabile dell'implementazione di molte importanti funzionalità dell'applicazione:

  • In quanto indicato dalla Creazione guidata applicazione MFC, il menu per l'applicazione contiene solo New e i comandi di Exit scegliere dal menu di File .Il comando di New è supportato solo per le applicazioni MDI, non le applicazioni SDI senza supporto documento/visualizzazione.) La risorsa menu generata non supporterà un elenco (utilizzato più di recente) utilizzati di recente.

  • È necessario aggiungere le funzioni di gestione e le implementazioni di tutti i controlli che verranno supportate dall'applicazione, inclusi Apri e Salva scegliere dal menu di File .MFC in genere viene fornito il codice per supportare queste funzionalità, ma tale supporto è associato strettamente l'architettura documento/visualizzazione.

  • La barra degli strumenti per l'applicazione, se richiedeste uno, sarà minima.

Si consiglia di utilizzare la Creazione guidata applicazione MFC per creare applicazioni senza l'architettura documento/visualizzazione, poiché la procedura guidata garantisce un'architettura corretta MFC.Tuttavia, se è necessario evitare l'utilizzo della procedura guidata, qui diversi approcci per ignorare l'architettura documento/visualizzazione nel codice:

  • Considerare il documento come l'allegato inutilizzato e distribuire il codice di gestione dei dati nella classe di visualizzazione, come suggerito su.Il sovraccarico del documento è relativamente basso.Un singolo oggetto di CDocument comporti una piccola quantità di sovraccarico da sola, più il sovraccarico delle classi di base, in CCmdTarget e di CObjectdi CDocument.Entrambe le classi risultano limitate.

    Dichiarato in CDocument:

    • Due oggetti di CString .

    • Tre BOOLS.

    • Un puntatore di CDocTemplate .

    • Un oggetto di CPtrList , contenente un elenco delle visualizzazioni del documento.

    Inoltre, il documento richiede la quantità di tempo per creare l'oggetto documento, gli oggetti visualizzazione, una finestra cornice e un oggetto del modello di documento.

  • Considerare sia il documento che la visualizzazione come annessi inutilizzati.Inserire il codice di disegno e di gestione dei dati nella finestra cornice anziché la visualizzazione.Questo approccio è più vicino al modello di programmazione del linguaggio C.

  • Eseguire l'override delle parti del framework MFC che creano il documento e la visualizzazione per eliminare crearli affatto.Il processo di creazione del documento ha inizio con una chiamata a CWinApp::AddDocTemplate.Eliminare tale chiamata dalla funzione membro di InitInstance dell'applicazione e, invece, creare una finestra cornice in InitInstance manualmente.Inserire il codice di gestione dei dati nella classe della finestra cornice.Il processo di creazione documento/visualizzazione è illustrato in documentare/creazione di visualizzazione.È più lavoro e richiede una conoscenza approfondita del framework, ma è possibile liberare completamente il sovraccarico documento/visualizzazione.

L'articolo MFC: Utilizzo di classi di database senza documenti e visualizzazioni vengono forniti esempi più concreti delle alternative documento/visualizzazione nel contesto delle applicazioni di database.

Vedere anche

Concetti

L'architettura documento/visualizzazione