Partilhar via


CSingleDocTemplate Classe

Define um modelo de documento que implementa a interface de documento único (SDI).

Sintaxe

class CSingleDocTemplate : public CDocTemplate

Membros

Construtores Públicos

Nome Descrição
CSingleDocTemplate::CSingleDocTemplate Constrói um objeto CSingleDocTemplate.

Observações

Um aplicativo SDI usa a janela do quadro principal para exibir um documento; Apenas um documento pode ser aberto de cada vez.

Um modelo de documento define a relação entre três tipos de classes:

  • Uma classe de documento, da qual você deriva do 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 o modo de exibição. Para um modelo de documento SDI, você pode derivar essa classe de CFrameWnd; se você não precisa personalizar o comportamento da janela de quadro principal, você pode usar CFrameWnd diretamente sem derivar sua própria classe.

Um aplicativo SDI normalmente suporta um tipo de documento, portanto, ele tem apenas um CSingleDocTemplate objeto. Só pode ser aberto um documento de cada vez.

Você não precisa chamar nenhuma função de CSingleDocTemplate membro, exceto o construtor. A estrutura manipula CSingleDocTemplate objetos internamente.

Para obter mais informações sobre como usar CSingleDocTemplateo , consulte Modelos de documento e o processo de criação de documento/exibição.

Hierarquia de herança

CObject

CCmdTarget

CDocTemplate

CSingleDocTemplate

Requerimentos

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 string consiste em até sete substrings separadas pelo caractere '\n' (o caractere '\n' é necessário como um espaço reservado se uma substring não estiver incluída; no entanto, caracteres '\n' à direita não são necessários); Essas substrings descrevem 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 cadeia de caracteres; toda a cadeia de caracteres aparece como uma única entrada no Editor de Cadeia de Caracteres, não como sete entradas separadas.

Para obter mais informações sobre esses tipos de recursos, consulte o Editor de cadeia de caracteres.

pDocClass
Aponta para o CRuntimeClass objeto da classe de documento. Esta classe é uma CDocumentclasse derivada que você define para representar seus documentos.

pFrameClasse
Aponta para o CRuntimeClass objeto da classe de janela de quadro. Essa classe pode ser uma CFrameWndclasse derivada ou pode ser CFrameWnd ela mesma se você quiser um comportamento padrão para sua janela de quadro principal.

pViewClass
Aponta para o CRuntimeClass objeto da classe view. Esta classe é uma CViewclasse derivada que você define para exibir seus documentos.

Observações

Aloque dinamicamente um CSingleDocTemplate objeto e passe-o para CWinApp::AddDocTemplate a InitInstance função de membro da sua 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);

Ver também

MFC Exemplo DOCKTOOL
CDocTemplate Classe
Gráfico de Hierarquia
CDocTemplate Classe
CDocument Classe
Classe CFrameWnd
CMultiDocTemplate Classe
Classe CView
Classe CWinApp