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
,CFormView
oderCEditView
. (Sie können auch direkt verwendenCEditView
.)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 verwendenCFrameWnd
, 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 CSingleDocTemplate
finden Sie unter "Dokumentvorlagen" und "Dokument/Ansichtserstellungsprozess".
Vererbungshierarchie
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 CDocument
abgeleitete Klasse, die Sie zum Darstellen Ihrer Dokumente definieren.
pFrameClass
Verweist auf das CRuntimeClass
Objekt der Framefensterklasse. Diese Klasse kann eine CFrameWnd
abgeleitete 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 CView
abgeleitete 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