Klasa CSingleDocTemplate
Definiuje szablon dokumentu, który implementuje interfejs pojedynczego dokumentu (SDI).
Składnia
class CSingleDocTemplate : public CDocTemplate
Elementy członkowskie
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
CView
klasy , ,CScrollView
CFormView
lubCEditView
. (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
CFrameWnd
klasy ; 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
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. Na 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ą CDocument
do reprezentowania dokumentów.
pFrameClass
CRuntimeClass
Wskazuje obiekt klasy okna ramowego. Ta klasa może być klasą pochodną CFrameWnd
lub 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ą CView
do 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