Visual – MFC – Multiple Document Interface – Document/View Architecture – C++

Publicado: 2 de maio de 2014 em C/C++

Por padrão, o Assistente de aplicativo do MFC cria um esqueleto de aplicação com uma classe de documentos e uma classe de visão. O MFC separa o gerenciamento de dados para essas duas classes. O documento armazena os dados e gerencia a impressão dos dados e coordena a atualização das múltiplas visões dos dados. A exibição mostra os dados e gerencia a interação do usuário com eles, incluindo a seleção e edição.

Neste modelo, um objeto de documento MFC lê e grava dados para armazenamento persistente. O documento pode também proporcionar uma interface para os dados de onde ele reside (tal como numa base de dados). Um objeto de exibição separado controla a exibição de dados, de processar os dados em uma janela de seleção de usuário e edição. A visão obtém dados de exibição do documento e se comunica de volta ao documento com todas as alterações de dados.

MDI - Document/View

MDI – Document/View MFC Standard

Visual Studio

A Microsoft possui um Wizard para aplicações MFC que cria programas de exemplos que também são programas iniciais de desenvolvimento para que você não precise começar do zero. Estes exemplos são eficientes pois proporcionam as técnicas corretas de desenvolvimento e nomenclatura e uma vez que se aprende como funciona cada um dos diferentes exemplos de aplicações MFC, o desenvolvedor ganha um grande know-how da arquitetura Windows. Entre os exemplos estão os seguintes modelos de aplicações: MFC Standad, Windows Explorer, Visual Studio e Office.

Mais informações sobre como funciona a arquitetura Document/View: http://msdn.microsoft.com/en-us/library/4x1xy43a.aspx

MDI Sem o uso do Document/View

É possível criar aplicações MDI sem o uso do modelo de documento e visão, mas a Microsoft não recomenda esta pratica por não ser segura, apesar de existir um exemplo nos exemplos oficiais do Visual Studio:

MDI - Without Doc/View

MDI – Without Doc/View

 

Sample MDI without using Doc/View: http://msdn.microsoft.com/en-us/library/ahd07sdd(v=vs.90).aspx

Exemplo:

Este tipo de aplicação requer no mínimo três classes, o que em C++ significa seis arquivos, então você pode obter o código completo criando uma aplicação MFC do tipo Multi Documents com o Project Style tipo MFC Standard. O trecho de código a seguir mostra como funciona a arquitetura Document/View onde  as classes de documentos e de visão são vinculadas em tempo de execução a um Template, você pode ter um documento para diversas visões.

C++

CMultiDocTemplate* pDocTemplate;

	pDocTemplate = new CMultiDocTemplate(IDR_DocumentosMdiCpTYPE,
		RUNTIME_CLASS(CDocumentosMdiCppDoc), // Classe do Documento
		RUNTIME_CLASS(CChildFrame), // custom MDI child frame
		RUNTIME_CLASS(CDocumentosMdiCppView)); // Classe da Visão

	if (!pDocTemplate)
		return FALSE;

	AddDocTemplate(pDocTemplate);

 

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s