Classe CMultiDocTemplate
Definisce un modello di documento che implementa l'interfaccia a documenti multipli (MDI).
Sintassi
class CMultiDocTemplate : public CDocTemplate
Membri
Le funzioni membro per questa classe sono virtuali. Per la documentazione, vedere CDocTemplate e CCmdTarget .
Costruttori pubblici
Nome | Descrizione |
---|---|
CMultiDocTemplate::CMultiDocTemplate | Costruisce un oggetto CMultiDocTemplate . |
Osservazioni:
Un'applicazione MDI usa la finestra cornice principale come area di lavoro in cui l'utente può aprire zero o più finestre cornice documento, ognuna delle quali visualizza un documento. Per una descrizione più dettagliata dell'MDI, vedere Linee guida per l'interfaccia di Windows per la progettazione software.
Un modello di documento definisce le relazioni tra tre tipi di classi:
Classe di documento, derivata da CDocument.
Classe di visualizzazione, che visualizza i dati della classe documento elencata in precedenza. È possibile derivare questa classe da CView,
CScrollView
,CFormView
oCEditView
. È anche possibile usareCEditView
direttamente.Classe della finestra cornice che contiene la visualizzazione. Per un modello di documento MDI, è possibile derivare questa classe da
CMDIChildWnd
oppure, se non è necessario personalizzare il comportamento delle finestre cornice documento, è possibile usare CMDIChildWnd direttamente senza derivare la propria classe.
Un'applicazione MDI può supportare più di un tipo di documento e i documenti di tipi diversi possono essere aperti contemporaneamente. L'applicazione ha un modello di documento per ogni tipo di documento supportato. Ad esempio, se l'applicazione MDI supporta sia fogli di calcolo che documenti di testo, l'applicazione ha due CMultiDocTemplate
oggetti.
L'applicazione usa i modelli di documento quando l'utente crea un nuovo documento. Se l'applicazione supporta più tipi di documento, il framework ottiene i nomi dei tipi di documento supportati dai modelli di documento e li visualizza in un elenco nella finestra di dialogo File nuovo. Dopo che l'utente ha selezionato un tipo di documento, l'applicazione crea un oggetto classe documento, un oggetto finestra cornice e un oggetto visualizzazione e li collega l'uno all'altro.
Non è necessario chiamare funzioni membro di CMultiDocTemplate
ad eccezione del costruttore. Il framework gestisce CMultiDocTemplate
gli oggetti internamente.
Per altre informazioni su CMultiDocTemplate
, vedere Modelli di documento e processo di creazione di documenti/visualizzazioni.
Gerarchia di ereditarietà
CMultiDocTemplate
Requisiti
Intestazione: afxwin.h
CMultiDocTemplate::CMultiDocTemplate
Costruisce un oggetto CMultiDocTemplate
.
CMultiDocTemplate(
UINT nIDResource,
CRuntimeClass* pDocClass,
CRuntimeClass* pFrameClass,
CRuntimeClass* pViewClass);
Parametri
nIDResource
Specifica l'ID delle risorse utilizzate con il tipo di documento. Ciò può includere risorse di menu, icona, tabella dell'acceleratore e stringa.
La risorsa stringa è costituita da un massimo di sette sottostringhe separate dal carattere '\n' (il carattere '\n' è necessario come segnaposto se non è inclusa una sottostringa; tuttavia, i caratteri finali '\n' non sono necessari); queste sottostringhe descrivono il tipo di documento. Per informazioni sulle sottostringhe, vedere CDocTemplate::GetDocString. Questa risorsa stringa si trova nel file di risorse dell'applicazione. Ad esempio:
// MYCALC.RC
STRINGTABLE PRELOAD DISCARDABLE
BEGIN
IDR_SHEETTYPE "\nSheet\nWorksheet\nWorksheets (*.myc)\n.myc\n MyCalcSheet\nMyCalc Worksheet"
END
La stringa inizia con un carattere '\n' perché la prima sottostringa non viene usata per le applicazioni MDI e quindi non è inclusa. È possibile modificare questa stringa usando l'editor di stringhe; L'intera stringa viene visualizzata come una singola voce nell'editor di stringhe, non come sette voci separate.
Per altre informazioni su questi tipi di risorse, vedere Editor di risorse.
pDocClass
Punta all'oggetto CRuntimeClass
della classe document. Questa classe è una CDocument
classe derivata da che si definisce per rappresentare i documenti.
pFrameClass
Punta all'oggetto CRuntimeClass
della classe finestra cornice. Questa classe può essere una CMDIChildWnd
classe derivata da , oppure può essere CMDIChildWnd
se si desidera un comportamento predefinito per le finestre cornice documento.
pViewClass
Punta all'oggetto CRuntimeClass
della classe di visualizzazione. Questa classe è una CView
classe derivata da che si definisce per visualizzare i documenti.
Osservazioni:
Allocare dinamicamente un CMultiDocTemplate
oggetto per ogni tipo di documento supportato dall'applicazione e passarne CWinApp::AddDocTemplate
ognuno dalla InitInstance
funzione membro della classe dell'applicazione.
Esempio
// Code fragment from CMyApp::InitInstance
// Establish all of the document types
// supported by the application
AddDocTemplate(new CMultiDocTemplate(IDR_BRUSHDOCTYPE,
RUNTIME_CLASS(CBrushDoc),
RUNTIME_CLASS(CChildFrame),
RUNTIME_CLASS(CBrushView)));
AddDocTemplate(new CMultiDocTemplate(IDR_DCDOCTYPE,
RUNTIME_CLASS(CDCDoc),
RUNTIME_CLASS(CChildFrame),
RUNTIME_CLASS(CDCView)));
Ecco un secondo esempio.
// Code fragment taken from CMyApp::InitInstance
// Normally, an application creates a document
// template and registers it with MFC as a part
// of its initialization.
// IDR_EXAMPLEDOCTYPE is a resource ID string; see
// the CDocTemplate class overview documentation
// for more information on its format.
// The next three parameters use the RUNTIME_CLASS()
// macro to get runtime type information for the doc,
// frame, and view classes that will be associated
// by the template.
pDocTemplate = new CMultiDocTemplate(IDR_EXAMPLEDOCTYPE,
RUNTIME_CLASS(CExampleDoc),
RUNTIME_CLASS(CChildFrame),
RUNTIME_CLASS(CExampleView));
if (!pDocTemplate)
return FALSE;
// After the following call, MFC is aware of the doc
// template and will free it when the application is
// shut down. The doc templates known to MFC will
// automatically be used when CWinApp:OnFileOpen()
// or CWinApp::OnFileNew() are called.
AddDocTemplate(pDocTemplate);
Vedi anche
Classe CDocTemplate
Grafico della gerarchia
Classe CDocTemplate
Classe CSingleDocTemplate
Classe CWinApp