CSingleDocTemplate-klass

Definierar en dokumentmall som implementerar SDI (Single Document Interface).

Syntax

class CSingleDocTemplate : public CDocTemplate

Medlemmar

Offentliga konstruktorer

Namn Beskrivning
CSingleDocMall::CSingleDocTemplate Konstruerar ett CSingleDocTemplate objekt.

Anmärkningar

Ett SDI-program använder huvudramfönstret för att visa ett dokument. Endast ett dokument kan vara öppet i taget.

En dokumentmall definierar relationen mellan tre typer av klasser:

  • En dokumentklass som du härleder från CDocument.

  • En vyklass som visar data från dokumentklassen som anges ovan. Du kan härleda den här klassen från CView, CScrollView, CFormVieweller CEditView. (Du kan också använda CEditView direkt.)

  • En bildrutefönsterklass som innehåller vyn. För en SDI-dokumentmall kan du härleda den här klassen från CFrameWnd. Om du inte behöver anpassa beteendet för huvudramsfönstret kan du använda CFrameWnd direkt utan att härleda din egen klass.

Ett SDI-program stöder vanligtvis en typ av dokument, så det har bara ett CSingleDocTemplate objekt. Endast ett dokument kan vara öppet i taget.

Du behöver inte anropa några medlemsfunktioner CSingleDocTemplate förutom konstruktorn. Ramverket hanterar CSingleDocTemplate objekt internt.

Mer information om hur du använder CSingleDocTemplatefinns i Dokumentmallar och processen för att skapa dokument/visa.

Arvshierarki

CObject

CCmdTarget

CDocTemplate

CSingleDocTemplate

Kravspecifikation

rubrik: afxwin.h

CSingleDocMall::CSingleDocTemplate

Konstruerar ett CSingleDocTemplate objekt.

CSingleDocTemplate(
    UINT nIDResource,
    CRuntimeClass* pDocClass,
    CRuntimeClass* pFrameClass,
    CRuntimeClass* pViewClass);

Parameterar

nIDResource
Anger ID för de resurser som används med dokumenttypen. Detta kan omfatta meny-, ikon-, acceleratortabell- och strängresurser.

Strängresursen består av upp till sju delsträngar avgränsade med tecknet "\n" (tecknet "\n" behövs som platshållare om en delsträng inte ingår. Det är dock inte nödvändigt att följa\ntecken. dessa delsträngar beskriver dokumenttypen. Information om understrängarna finns i CDocTemplate::GetDocString. Den här strängresursen finns i programmets resursfil. Till exempel:

// MYCALC.RC
STRINGTABLE PRELOAD DISCARDABLE
BEGIN
  IDR_MAINFRAME "MyCalc Windows Application\nSheet\nWorksheet\n Worksheets (*.myc)\n.myc\nMyCalcSheet\n MyCalc Worksheet"
END

Du kan redigera den här strängen med hjälp av strängredigeraren. hela strängen visas som en enda post i strängredigeraren, inte som sju separata poster.

Mer information om dessa resurstyper finns i Strängredigeraren.

pDoc-klass
Pekar på objektet för CRuntimeClass dokumentklassen. Den här klassen är en CDocument-härledd klass som du definierar för att representera dina dokument.

pFrameKlass
Pekar på objektet för CRuntimeClass bildrutefönstrets klass. Den här klassen kan vara en CFrameWnd-derived-klass, eller så kan den vara CFrameWnd sig själv om du vill ha standardbeteende för huvudramfönstret.

pViewClass
Pekar på objektet för CRuntimeClass visningsklassen. Den här klassen är en CView-derived-klass som du definierar för att visa dina dokument.

Anmärkningar

Tilldela ett CSingleDocTemplate objekt dynamiskt och skicka det till CWinApp::AddDocTemplate från medlemsfunktionen i InitInstance din programklass.

Exempel

// 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);

Se även

MFC-exempel DOCKTOOL
CDocTemplate-klass
hierarkidiagram
CDocTemplate-klass
CDocument-klass
CFrameWnd-klass
CMultiDocTemplate-klass
CView-klass
CWinApp-klass