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, CFormViewo CEditView. È anche possibile usare CEditView 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 usare CFrameWnd 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 CSingleDocTemplatedi , vedere Modelli di documento e processo di creazione di documenti/visualizzazioni.

Gerarchia di ereditarietà

CObject

CCmdTarget

Cdoctemplate

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 CDocumentclasse derivata da che si definisce per rappresentare i documenti.

pFrameClass
Punta all'oggetto CRuntimeClass della classe finestra cornice. Questa classe può essere una CFrameWndclasse 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 CViewclasse derivata da che si definisce per visualizzare i documenti.

Osservazioni:

Allocare dinamicamente un CSingleDocTemplate oggetto e passarlo dalla CWinApp::AddDocTemplateInitInstance 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