CSingleDocTemplate-Klasse

Definiert eine Dokumentvorlage, welche die Single Document Interface (SDI) implementiert.

Syntax

class CSingleDocTemplate : public CDocTemplate

Member

Öffentliche Konstruktoren

Name Beschreibung
CSingleDocTemplate::CSingleDocTemplate Erstellt ein CSingleDocTemplate-Objekt.

Hinweise

Eine SDI-Anwendung verwendet das Hauptrahmenfenster, um ein Dokument anzuzeigen; Nur ein Dokument kann gleichzeitig geöffnet werden.

Eine Dokumentvorlage definiert die Beziehung zwischen drei Klassentypen:

  • Eine Dokumentklasse, von der Sie ableiten CDocument.

  • Eine Ansichtsklasse, die Daten aus der oben aufgeführten Dokumentklasse anzeigt. Sie können diese Klasse von CView, , CScrollView, CFormViewoder CEditView. (Sie können auch direkt verwenden CEditView .)

  • Eine Framefensterklasse, die die Ansicht enthält. Bei einer SDI-Dokumentvorlage können Sie diese Klasse ableiten von CFrameWnd; wenn Sie das Verhalten des Hauptrahmenfensters nicht anpassen müssen, können Sie direkt verwenden CFrameWnd , ohne Ihre eigene Klasse abzuleiten.

Eine SDI-Anwendung unterstützt in der Regel einen Dokumenttyp, sodass sie nur ein CSingleDocTemplate Objekt aufweist. Es kann jeweils nur ein Dokument geöffnet werden.

Sie müssen keine Memberfunktionen außer CSingleDocTemplate dem Konstruktor aufrufen. Das Framework verarbeitet CSingleDocTemplate Objekte intern.

Weitere Informationen zur Verwendung CSingleDocTemplatefinden Sie unter "Dokumentvorlagen" und "Dokument/Ansichtserstellungsprozess".

Vererbungshierarchie

CObject

CCmdTarget

CDocTemplate

CSingleDocTemplate

Anforderungen

Header: afxwin.h

CSingleDocTemplate::CSingleDocTemplate

Erstellt ein CSingleDocTemplate-Objekt.

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

Parameter

nIDResource
Gibt die ID der ressourcen an, die mit dem Dokumenttyp verwendet werden. Dazu können Menü-, Symbol-, Zugriffstastentabellen- und Zeichenfolgenressourcen gehören.

Die Zeichenfolgenressource besteht aus bis zu sieben Teilzeichenfolgen, die durch das Zeichen "\n" getrennt sind (das Zeichen "\n" wird als Platzhalter benötigt, wenn keine Teilzeichenfolge enthalten ist; nachfolgende '\n'-Zeichen sind jedoch nicht erforderlich); Diese Teilzeichenfolgen beschreiben den Dokumenttyp. Informationen zu den Teilzeichenfolgen finden Sie unter CDocTemplate::GetDocString. Diese Zeichenfolgenressource befindet sich in der Ressourcendatei der Anwendung. Zum Beispiel:

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

Sie können diese Zeichenfolge mit dem Zeichenfolgen-Editor bearbeiten; die gesamte Zeichenfolge wird als einzelner Eintrag im Zeichenfolgen-Editor und nicht als sieben separate Einträge angezeigt.

Weitere Informationen zu diesen Ressourcentypen finden Sie im Zeichenfolgen-Editor.

pDocClass
Verweist auf das CRuntimeClass Objekt der Dokumentklasse. Diese Klasse ist eine CDocumentabgeleitete Klasse, die Sie zum Darstellen Ihrer Dokumente definieren.

pFrameClass
Verweist auf das CRuntimeClass Objekt der Framefensterklasse. Diese Klasse kann eine CFrameWndabgeleitete Klasse sein, oder sie kann sich selbst sein CFrameWnd , wenn Sie das Standardverhalten für das Hauptframefenster wünschen.

pViewClass
Verweist auf das CRuntimeClass Objekt der Ansichtsklasse. Diese Klasse ist eine CViewabgeleitete Klasse, die Sie zum Anzeigen Ihrer Dokumente definieren.

Hinweise

Weisen Sie ein CSingleDocTemplate Objekt dynamisch zu CWinApp::AddDocTemplate , und übergeben Sie es an die InitInstance Memberfunktion Ihrer Anwendungsklasse.

Beispiel

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

Siehe auch

MFC-Beispiel DOCKTOOL
CDocTemplate-Klasse
Hierarchiediagramm
CDocTemplate-Klasse
CDocument-Klasse
CFrameWnd-Klasse
CMultiDocTemplate-Klasse
CView-Klasse
CWinApp-Klasse