Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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
CViewklasy , ,CScrollViewCFormViewlubCEditView. (Możesz również użyćCEditViewbezpoś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ćCFrameWndbezpoś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 (źródło 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ą 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ż
Przykładowy MFC DOCKTOOL
Klasa CDocTemplate
Wykres hierarchii
Klasa CDocTemplate
Klasa CDocument
Klasa CFrameWnd
Klasa CMultiDocTemplate
Klasa CView
Klasa CWinApp