Klasa CSingleDocTemplate

Definiuje szablon dokumentu, który implementuje interfejs pojedynczego dokumentu (SDI).

Składnia

class CSingleDocTemplate : public CDocTemplate

Członkowie

Konstruktory publiczne

Nazwa/nazwisko opis
CSingleDocTemplate::CSingleDocTemplate CSingleDocTemplate Tworzy obiekt.

Uwagi

Aplikacja SDI używa głównego okna ramki do wyświetlania dokumentu; jednocześnie można otworzyć tylko jeden dokument.

Szablon dokumentu definiuje relację między trzema typami klas:

  • Klasa dokumentów, która pochodzi z klasy CDocument.

  • Klasa widoku, która wyświetla dane z klasy dokumentów wymienionej powyżej. Tę klasę można uzyskać na podstawie CViewklasy , , CScrollViewCFormViewlub CEditView. (Możesz również użyć CEditView bezpośrednio).

  • Klasa okna ramowego, która zawiera widok. W przypadku szablonu dokumentu SDI można utworzyć tę klasę z CFrameWndklasy ; jeśli nie musisz dostosowywać zachowania głównego okna ramowego, możesz użyć CFrameWnd bezpośrednio bez wyprowadzania własnej klasy.

Aplikacja SDI zwykle obsługuje jeden typ dokumentu, więc ma tylko jeden CSingleDocTemplate obiekt. Jednocześnie można otworzyć tylko jeden dokument.

Nie trzeba wywoływać żadnych funkcji składowych z CSingleDocTemplate wyjątkiem konstruktora. Struktura obsługuje CSingleDocTemplate obiekty wewnętrznie.

Aby uzyskać więcej informacji na temat korzystania z programu CSingleDocTemplate, zobacz Szablony dokumentów i Proces tworzenia dokumentu/widoku.

Hierarchia dziedziczenia

Cobject

Ccmdtarget

Cdoctemplate

CSingleDocTemplate

Wymagania

Nagłówek: afxwin.h

CSingleDocTemplate::CSingleDocTemplate

CSingleDocTemplate Tworzy obiekt.

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

Parametry

nIDResource
Określa identyfikator zasobów używanych z typem dokumentu. Może to obejmować menu, ikonę, tabelę akceleratora i zasoby ciągów.

Zasób ciągu składa się z maksymalnie siedmiu podciągów oddzielonych znakiem "\n" (znak "\n" jest wymagany jako symbol zastępczy, jeśli podciąg nie jest dołączony; jednak końcowe znaki "\n" nie są konieczne); te podciągy opisują typ dokumentu. Aby uzyskać informacje o podciągach, zobacz CDocTemplate::GetDocString. Ten zasób ciągu znajduje się w pliku zasobów aplikacji. Przykład:

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

Ten ciąg można edytować przy użyciu edytora ciągów. cały ciąg jest wyświetlany jako pojedynczy wpis w Edytorze ciągów, a nie jako siedem oddzielnych wpisów.

Aby uzyskać więcej informacji na temat tych typów zasobów, zobacz Edytor ciągów.

pDocClass
CRuntimeClass Wskazuje obiekt klasy dokumentu. Ta klasa jest klasą pochodną zdefiniowaną CDocumentdo reprezentowania dokumentów.

pFrameClass
CRuntimeClass Wskazuje obiekt klasy okna ramowego. Ta klasa może być klasą pochodną CFrameWndlub może być CFrameWnd sama w przypadku zachowania domyślnego dla głównego okna ramowego.

pViewClass
CRuntimeClass Wskazuje obiekt klasy widoków. Ta klasa jest klasą pochodną zdefiniowaną CViewdo wyświetlania dokumentów.

Uwagi

Dynamicznie przydzielaj CSingleDocTemplate obiekt i przekazuje go do CWinApp::AddDocTemplate funkcji InitInstance składowej klasy aplikacji.

Przykład

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

Zobacz też

MFC Sample DOCKTOOL
Klasa CDocTemplate
Wykres hierarchii
Klasa CDocTemplate
Klasa CDocument
Klasa CFrameWnd
Klasa CMultiDocTemplate
Klasa CView
Klasa CWinApp