Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
La relazione standard tra un documento, la relativa visualizzazione e la relativa finestra cornice sono descritte in Creazione di documenti/visualizzazioni. Molte applicazioni supportano un singolo tipo di documento (ma possibilmente più documenti aperti di quel tipo) con una singola visualizzazione nel documento e una sola finestra cornice per documento. Tuttavia, alcune applicazioni potrebbero dover modificare una o più di queste impostazioni predefinite.
Cosa vuoi sapere di più su
Più tipi di documento
La Creazione guidata dell'applicazione MFC crea automaticamente una singola classe documento. In alcuni casi, tuttavia, potrebbe essere necessario supportare più tipi di documento. Ad esempio, l'applicazione potrebbe richiedere documenti di fogli di lavoro e grafici. Ogni tipo di documento è rappresentato dalla propria classe documento e probabilmente anche dalla propria classe di visualizzazione. Quando l'utente sceglie il comando File Nuovo, il framework visualizza una finestra di dialogo che elenca i tipi di documento supportati. Crea quindi un documento del tipo scelto dall'utente. Ogni tipo di documento viene gestito dal proprio oggetto modello di documento.
Vedere Aggiunta di una classe per creare classi di documenti aggiuntive. Scegliere CDocument come Tipo di classe da cui derivare e specificare le informazioni del documento richieste. Implementare quindi i dati della nuova classe.
Per informare il framework sulla classe documento aggiuntiva, è necessario aggiungere una seconda chiamata a AddDocTemplate nell'override initInstance della classe dell'applicazione. Per altre informazioni, vedere Modelli di documento.
Più visualizzazioni
Molti documenti richiedono una sola visualizzazione, ma è possibile supportare più visualizzazioni di un singolo documento. Per implementare più visualizzazioni, un oggetto documento mantiene un elenco delle relative visualizzazioni, fornisce funzioni membro per l'aggiunta e la rimozione di visualizzazioni e fornisce la funzione membro UpdateAllViews per consentire a più visualizzazioni di sapere quando i dati del documento sono stati modificati.
MFC supporta tre interfacce utente comuni che richiedono più visualizzazioni nello stesso documento. Questi modelli sono:
Visualizzare gli oggetti della stessa classe, ognuno in una finestra cornice documento MDI separata.
Potrebbe essere necessario supportare la creazione di una seconda finestra cornice in un documento. L'utente può scegliere un comando Nuova finestra per aprire un secondo fotogramma con una visualizzazione dello stesso documento e quindi utilizzare i due fotogrammi per visualizzare parti diverse del documento contemporaneamente. Il framework supporta il comando Nuova finestra nel menu Finestra per le applicazioni MDI duplicando la finestra cornice iniziale e la visualizzazione associata al documento.
Visualizzare gli oggetti della stessa classe nella stessa finestra cornice documento.
Le finestre di divisione suddividono lo spazio di visualizzazione di una singola finestra di documento in più visualizzazioni separate del documento. Il framework crea più oggetti di visualizzazione dalla stessa classe di visualizzazione. Per altre informazioni, vedere Splitter Windows.
Visualizzare oggetti di classi diverse in una singola finestra cornice.
In questo modello, una variante della finestra di divisione, più visualizzazioni condividono una singola finestra cornice. Le visualizzazioni vengono costruite da classi diverse, ognuna delle quali offre un modo diverso per visualizzare lo stesso documento. Ad esempio, una visualizzazione potrebbe mostrare un documento di elaborazione delle parole in modalità normale mentre l'altra la mostra in modalità struttura. Un controllo splitter consente all'utente di regolare le dimensioni relative delle visualizzazioni.
La figura seguente, suddivisa in parti a, b e c, mostra i tre modelli di interfaccia utente nell'ordine presentato in precedenza.
Multiple-View Interfacce utente
Il framework fornisce questi modelli implementando il comando New Window e fornendo la classe CSplitterWnd, come descritto in Splitter Windows. È possibile implementare altri modelli usando questi come punto di partenza. Per i programmi di esempio che illustrano diverse configurazioni di visualizzazioni, finestre cornice e splitter, vedere Esempi MFC.
Per altre informazioni su UpdateAllViews
, vedere classe CView nella Guida di riferimento MFC e nell'esempio Scribble.
Finestre con più cornici
È possibile usare il comando Nuova finestra nel menu Finestra per le applicazioni MDI per creare una seconda finestra cornice nello stesso documento. Per altre informazioni, vedere il primo modello nella figura Multiple-View interfacce utente.
Finestre di divisione
In una finestra di divisione, la finestra è o può essere suddivisa in due o più riquadri scorrevoli. Un controllo splitter (o "split box") nella cornice della finestra accanto alle barre di scorrimento consente all'utente di regolare le dimensioni relative dei riquadri. Ogni riquadro è una visualizzazione nello stesso documento. Nei splitter "dinamici", le visualizzazioni sono della stessa classe, come illustrato nella parte b della figura Multiple-View interfacce utente. Nei splitter "statici", le visualizzazioni possono essere di classi diverse. Le finestre splitter di entrambi i tipi sono supportate dalla classe CSplitterWnd.
Le finestre di divisione dinamiche, con visualizzazioni della stessa classe, consentono all'utente di suddividere una finestra in più riquadri in corrispondenza di volontà e quindi scorrere riquadri diversi per visualizzare parti diverse del documento. L'utente può anche separare di nuovo la finestra per rimuovere le visualizzazioni aggiuntive. Le finestre di divisione aggiunte all'esempio Scribble sono un esempio. In questo argomento viene descritta la tecnica per la creazione di finestre splitter dinamiche. Una finestra di divisione dinamica viene visualizzata nella parte b della figura Multiple-View interfacce utente.
Le finestre di divisione statiche, con visualizzazioni di classi diverse, iniziano con la finestra suddivisa in più riquadri, ognuno con uno scopo diverso. Ad esempio, nell'editor bitmap di Visual C++ la finestra dell'immagine mostra due riquadri affiancati. Nel riquadro a sinistra viene visualizzata un'immagine di dimensioni reali della bitmap. Nel riquadro di destra viene visualizzata un'immagine ingrandita o zoomata della stessa bitmap. I riquadri sono separati da una "barra di divisione" che l'utente può trascinare per modificare le dimensioni relative dei riquadri. Una finestra di divisione statica viene visualizzata nella parte c della figura Multiple-View interfacce utente.
Per altre informazioni, vedere classe CSplitterWnd nei riferimenti MFC e negli esempi MFC.