Compartilhar via


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 ou CEditView. (Você também pode usar CEditView 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á usar CFrameWnd 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

CObject

CCmdTarget

CDocTemplate

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