Classe CSingleDocTemplate
Define um modelo de documento que implementa a SDI (interface de documento único).
Sintaxe
class CSingleDocTemplate : public CDocTemplate
Membros
Construtores públicos
Nome | Descrição |
---|---|
CSingleDocTemplate::CSingleDocTemplate | Constrói um objeto CSingleDocTemplate . |
Comentários
Um aplicativo SDI usa a janela de quadro principal para exibir um documento; apenas um documento pode ser aberto por vez.
Um modelo de documento define a relação entre três tipos de classes:
Uma classe de documento, que você deriva de
CDocument
.Uma classe de exibição, que exibe dados da classe de documento listada acima. Você pode derivar essa classe de
CView
,CScrollView
,CFormView
ouCEditView
. (Você também pode usarCEditView
diretamente.)Uma classe de janela de quadro que contém a exibição. Para um modelo de documento SDI, você pode derivar essa classe de
CFrameWnd
; se você não precisar personalizar o comportamento da janela de quadro principal, poderá usarCFrameWnd
diretamente sem derivar sua própria classe.
Normalmente, um aplicativo SDI dá suporte a um tipo de documento, portanto, ele tem apenas um objeto CSingleDocTemplate
. Apenas um documento pode ser aberto por vez.
Não é necessário chamar nenhuma função membro de CSingleDocTemplate
, exceto o construtor. A estrutura manipula objetos CSingleDocTemplate
internamente.
Para obter mais informações sobre como usar CSingleDocTemplate
, consulte Modelos de documento e o processo de criação de documento/exibição.
Hierarquia de herança
CSingleDocTemplate
Requisitos
Cabeçalho: afxwin.h
CSingleDocTemplate::CSingleDocTemplate
Constrói um objeto CSingleDocTemplate
.
CSingleDocTemplate(
UINT nIDResource,
CRuntimeClass* pDocClass,
CRuntimeClass* pFrameClass,
CRuntimeClass* pViewClass);
Parâmetros
nIDResource
Especifica a ID dos recursos usados com o tipo de documento. Isso pode incluir recursos de menu, ícone, tabela aceleradora e cadeia de caracteres.
O recurso de cadeia de caracteres consiste em até sete substrings separadas pelo caractere '\n' (o caractere '\n' será necessário como um espaço reservado se uma substring não estiver incluída, no entanto, os caracteres '\n' à direita não serão necessários ), portanto, essas substrings descreverão o tipo de documento. Para obter informações sobre as substrings, consulte CDocTemplate::GetDocString. Esse recurso de cadeia de caracteres é encontrado no arquivo de recurso do aplicativo. Por exemplo:
// MYCALC.RC
STRINGTABLE PRELOAD DISCARDABLE
BEGIN
IDR_MAINFRAME "MyCalc Windows Application\nSheet\nWorksheet\n Worksheets (*.myc)\n.myc\nMyCalcSheet\n MyCalc Worksheet"
END
Você pode editar essa cadeia de caracteres usando o editor de cadeias de caracteres. A cadeia de caracteres inteira aparece como uma só entrada no Editor de Cadeias de Caracteres, não como sete entradas separadas.
Para obter mais informações sobre esses tipos de recursos, consulte Editores de cadeias de caracteres.
pDocClass
Aponta para o objeto CRuntimeClass
da classe de documento. Essa é uma classe derivada de CDocument
que você define para representar seus documentos.
pFrameClass
Aponta para o objeto CRuntimeClass
da classe de janela de quadro. Essa pode ser uma classe derivada de CFrameWnd
ou pode ser CFrameWnd
se você deseja o comportamento padrão para a janela de quadro principal.
pViewClass
Aponta para o objeto CRuntimeClass
da classe de exibição. Essa é uma classe derivada de CView
que você define para exibir seus documentos.
Comentários
Aloque dinamicamente um objeto CSingleDocTemplate
e passe-o para CWinApp::AddDocTemplate
da função membro InitInstance
da classe de aplicativo.
Exemplo
// 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);
Confira também
DOCKTOOL de amostra do MFC
Classe CDocTemplate
Gráfico da hierarquia
Classe CDocTemplate
Classe CDocument
Classe CFrameWnd
Classe CMultiDocTemplate
Classe CView
Classe CWinApp