Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
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,CFormViewellerCEditView. (Du kan också användaCEditViewdirekt.)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ändaCFrameWnddirekt 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
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