Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Define um modelo de documento que implementa a MDI (interface de vários documentos).
Sintaxe
class CMultiDocTemplate : public CDocTemplate
Membros
As funções de membro para essa classe são virtuais. Consulte CDocTemplate e CCmdTarget para obter a documentação.
Construtores públicos
| Nome | Descrição |
|---|---|
| CMultiDocTemplate::CMultiDocTemplate | Constrói um objeto CMultiDocTemplate. |
Comentários
Um aplicativo MDI usa a janela do quadro principal como um workspace em que o usuário poderá abrir zero ou mais janelas do quadro de documento e cada uma exibirá um documento. Para obter uma descrição mais detalhada da MDI, consulte Diretrizes de interface do Windows para design de software.
Um modelo de documento define as relações entre três tipos de classes:
Uma classe de documento, derivada de CDocument.
Uma classe de exibição, que exibe dados da classe de documento listada acima. É possível derivar essa classe de CView,
CScrollView,CFormViewouCEditView. (Você também pode usarCEditViewdiretamente.)Uma classe de janela de quadro que contém a exibição. Para um modelo de documento MDI, é possível derivar essa classe de
CMDIChildWndou, se não precisar personalizar o comportamento das janelas do quadro do documento, poderá usar CMDIChildWnd diretamente sem derivar a própria classe.
Um aplicativo MDI pode dar suporte a mais de um tipo de documento e documentos de diferentes tipos poderão ser abertos ao mesmo tempo. O aplicativo tem um modelo de documento para cada tipo de documento com suporte. Por exemplo, se o aplicativo MDI der suporte a planilhas e documentos de texto, o aplicativo terá dois objetos CMultiDocTemplate.
O aplicativo usará os modelos de documento quando o usuário criar um novo documento. Se o aplicativo der suporte a mais de um tipo de documento, a estrutura obterá os nomes dos tipos de documentos com suporte dos modelos de documento e os exibirá em uma lista na caixa de diálogo Arquivo Novo. Após o usuário selecionar um tipo de documento, o aplicativo criará um objeto de classe de documento, um objeto de janela do quadro e um objeto de exibição e anexará uns aos outros.
Não é necessário chamar nenhuma função membro de CMultiDocTemplate, exceto o construtor. A estrutura manipula objetos CMultiDocTemplate internamente.
Para obter mais informações sobre CMultiDocTemplate, consulte Modelos de documentos e o processo de criação de documentos/exibições.
Hierarquia de herança
CMultiDocTemplate
Requisitos
Cabeçalho: afxwin.h
CMultiDocTemplate::CMultiDocTemplate
Constrói um objeto CMultiDocTemplate.
CMultiDocTemplate(
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_SHEETTYPE "\nSheet\nWorksheet\nWorksheets (*.myc)\n.myc\n MyCalcSheet\nMyCalc Worksheet"
END
A cadeia de caracteres começa com um caractere '\n' porque a primeira substring não é usada para aplicativos MDI e, portanto, não está incluída. 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 Recursos.
pDocClass
Aponta para o objeto CRuntimeClass da classe de documento. Essa é uma classe derivada de CDocument que você define para representar seus documentos.
pClasse de Quadro
Aponta para o objeto CRuntimeClass da classe de janela do quadro. Essa classe poderá ser uma classe derivada de CMDIChildWnd ou poderá ser a própria CMDIChildWnd se você quiser o comportamento padrão para as janelas do quadro do documento.
pViewClasse
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 CMultiDocTemplate para cada tipo de documento que o aplicativo dá suporte e passe cada um para CWinApp::AddDocTemplate da função membro InitInstance da classe de aplicativo.
Exemplo
// Code fragment from CMyApp::InitInstance
// Establish all of the document types
// supported by the application
AddDocTemplate(new CMultiDocTemplate(IDR_BRUSHDOCTYPE,
RUNTIME_CLASS(CBrushDoc),
RUNTIME_CLASS(CChildFrame),
RUNTIME_CLASS(CBrushView)));
AddDocTemplate(new CMultiDocTemplate(IDR_DCDOCTYPE,
RUNTIME_CLASS(CDCDoc),
RUNTIME_CLASS(CChildFrame),
RUNTIME_CLASS(CDCView)));
Este é um segundo exemplo.
// Code fragment taken from CMyApp::InitInstance
// Normally, an application creates a document
// template and registers it with MFC as a part
// of its initialization.
// IDR_EXAMPLEDOCTYPE 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.
pDocTemplate = new CMultiDocTemplate(IDR_EXAMPLEDOCTYPE,
RUNTIME_CLASS(CExampleDoc),
RUNTIME_CLASS(CChildFrame),
RUNTIME_CLASS(CExampleView));
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
Classe CDocTemplate
Gráfico da hierarquia
Classe CDocTemplate
Classe CSingleDocTemplate
Classe CWinApp