CSingleDocTemplate – třída
Definuje šablonu dokumentu, která implementuje jedno rozhraní dokumentů (SDI).
Syntaxe
class CSingleDocTemplate : public CDocTemplate
Členové
Veřejné konstruktory
Název | 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
,CFormView
neboCEditView
. (Můžete také použítCEditView
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žítCFrameWnd
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í CSingleDocTemplate
naleznete v tématu Šablony dokumentů a proces vytváření dokumentů/zobrazení.
Hierarchie dědičnosti
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á CDocument
tří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á CFrameWnd
tří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á CView
tří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