Classe CSingleDocTemplate
Definisce un modello di documento che implementa l'interfaccia a documento singolo (SDI).
Sintassi
class CSingleDocTemplate : public CDocTemplate
Membri
Costruttori pubblici
Nome | Descrizione |
---|---|
CSingleDocTemplate::CSingleDocTemplate | Costruisce un oggetto CSingleDocTemplate . |
Osservazioni:
Un'applicazione SDI usa la finestra cornice principale per visualizzare un documento; è possibile aprire un solo documento alla volta.
Un modello di documento definisce la relazione 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 SDI, è possibile derivare questa classe da
CFrameWnd
. Se non è necessario personalizzare il comportamento della finestra cornice principale, è possibile usareCFrameWnd
direttamente senza derivare la propria classe.
Un'applicazione SDI supporta in genere un tipo di documento, quindi ha un CSingleDocTemplate
solo oggetto. È possibile aprire un solo documento alla volta.
Non è necessario chiamare funzioni membro di CSingleDocTemplate
ad eccezione del costruttore. Il framework gestisce CSingleDocTemplate
gli oggetti internamente.
Per altre informazioni sull'uso CSingleDocTemplate
di , vedere Modelli di documento e processo di creazione di documenti/visualizzazioni.
Gerarchia di ereditarietà
CSingleDocTemplate
Requisiti
Intestazione: afxwin.h
CSingleDocTemplate::CSingleDocTemplate
Costruisce un oggetto CSingleDocTemplate
.
CSingleDocTemplate(
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, non sono necessari caratteri '\n'); 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_MAINFRAME "MyCalc Windows Application\nSheet\nWorksheet\n Worksheets (*.myc)\n.myc\nMyCalcSheet\n MyCalc Worksheet"
END
È 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 stringhe.
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 CFrameWnd
classe derivata da o può essere CFrameWnd
stessa se si desidera un comportamento predefinito per la finestra cornice principale.
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 CSingleDocTemplate
oggetto e passarlo dalla CWinApp::AddDocTemplate
InitInstance
funzione membro della classe dell'applicazione.
Esempio
// The following code fragment is from CMyWinApp::InitInstance.
// CMyWinApp is derived from CWinApp.
// Establish the document type
// supported by the application
AddDocTemplate(new CSingleDocTemplate(IDR_MAINFRAME,
RUNTIME_CLASS(CMyDoc),
RUNTIME_CLASS(CMainFrame), // main SDI frame window
RUNTIME_CLASS(CMyView)));
// The following code fragment is from CMyWinApp::InitInstance.
// CMyWinApp is derived from CWinApp.
// Normally, an application creates a document
// template and registers it with MFC as a part
// of its initialization.
// IDR_SAMPLERESOURCE 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.
CSingleDocTemplate* pDocTemplate;
pDocTemplate = new CSingleDocTemplate(IDR_MAINFRAME,
RUNTIME_CLASS(CMyDoc),
RUNTIME_CLASS(CMainFrame), // main SDI frame window
RUNTIME_CLASS(CMyView));
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
DOCKTOOL di esempio MFC
Classe CDocTemplate
Grafico della gerarchia
Classe CDocTemplate
Classe CDocument
Classe CFrameWnd
Classe CMultiDocTemplate
Classe CView
Classe CWinApp