Sdílet prostřednictvím


CSingleDocTemplate – třída

Definuje šablonu dokumentu, která implementuje jedno rozhraní dokumentů (SDI).

Syntaxe

class CSingleDocTemplate : public CDocTemplate

Členové

Veřejné konstruktory

Jméno popis
CSingleDocTemplate::CSingleDocTemplate CSingleDocTemplate Vytvoří objekt.

Poznámky

Aplikace SDI používá k zobrazení dokumentu okno hlavního rámce; Současně lze otevřít pouze jeden dokument.

Šablona dokumentu definuje vztah mezi třemi typy tříd:

  • Třída dokumentu, kterou odvozujete z CDocument.

  • Třída zobrazení, která zobrazuje data z třídy dokumentu uvedené výše. Tuto třídu lze odvodit z CView, CScrollView, CFormViewnebo CEditView. (Můžete také použít CEditView přímo.)

  • Třída okna s rámečkem, která obsahuje zobrazení. U šablony dokumentu SDI můžete tuto třídu odvodit z CFrameWnd; pokud nepotřebujete přizpůsobit chování okna hlavního rámce, můžete použít CFrameWnd přímo bez odvození vlastní třídy.

Aplikace SDI obvykle podporuje jeden typ dokumentu, takže má pouze jeden CSingleDocTemplate objekt. Současně je možné otevřít jenom jeden dokument.

Nemusíte volat žádné členské funkce CSingleDocTemplate kromě konstruktoru. Architektura zpracovává CSingleDocTemplate objekty interně.

Další informace o použití CSingleDocTemplatenaleznete v tématu Šablony dokumentů a proces vytváření dokumentů/zobrazení.

Hierarchie dědičnosti

Objekt CObject

CCmdTarget

CDocTemplate

CSingleDocTemplate

Požadavky

Hlavička: afxwin.h

CSingleDocTemplate::CSingleDocTemplate

CSingleDocTemplate Vytvoří objekt.

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

Parametry

nIDResource
Určuje ID prostředků použitých s typem dokumentu. Může se jednat o nabídku, ikonu, tabulku akcelerátoru a prostředky řetězců.

Prostředek řetězce se skládá z až sedmi podřetězců oddělených znakem \n (znak \n je nutný jako zástupný symbol, pokud není součástí podřetězce, ale koncové znaky \n nejsou nutné); tyto podřetětědce popisují typ dokumentu. Informace o podřetěžcích naleznete v tématu CDocTemplate::GetDocString. Tento prostředek řetězce se nachází v souboru prostředků aplikace. Příklad:

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

Tento řetězec můžete upravit pomocí editoru řetězců; Celý řetězec se zobrazí jako jedna položka v Editoru řetězců, nikoli jako sedm samostatných položek.

Další informace o těchto typech prostředků najdete v editoru řetězců.

pDocClass
Odkazuje na CRuntimeClass objekt třídy dokumentu. Tato třída je -odvozená CDocumenttřída, kterou definujete pro reprezentaci dokumentů.

pFrameClass
Odkazuje na CRuntimeClass objekt třídy okna rámečku. Tato třída může být odvozená CFrameWndtřída nebo může být CFrameWnd sama o sobě, pokud chcete výchozí chování pro okno hlavního rámce.

pViewClass
Odkazuje na CRuntimeClass objekt třídy zobrazení. Tato třída je -odvozená CViewtřída, kterou definujete k zobrazení dokumentů.

Poznámky

Dynamicky přidělte CSingleDocTemplate objekt a předejte CWinApp::AddDocTemplate ho z InitInstance členské funkce vaší třídy aplikace.

Příklad

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

Viz také

MFC Sample DOCKTOOL
CDocTemplate – třída
Graf hierarchie
CDocTemplate – třída
CDocument – třída
CFrameWnd – třída
CMultiDocTemplate – třída
CView – třída
CWinApp – třída