Partilhar via


Arquitetura de Documento/Vista

Por padrão, o MFC Application Wizard cria um esqueleto de aplicativo com uma classe de documento e uma classe de exibição. O MFC separa o gerenciamento de dados nessas duas classes. O documento armazena os dados e gerencia a impressão dos dados e coordena a atualização de várias visualizações dos dados. A exibição exibe os dados e gerencia a interação do usuário com eles, incluindo seleção e edição.

Neste modelo, um objeto de documento MFC lê e grava dados no armazenamento persistente. O documento pode também fornecer uma interface para os dados onde quer que residam (por exemplo, numa base de dados). Um objeto de exibição separado gerencia a exibição de dados, desde a renderização dos dados em uma janela até a seleção e edição de dados pelo usuário. A vista obtém dados de exibição do documento e informa o documento sobre quaisquer alterações nos dados.

Embora você possa facilmente substituir ou ignorar a separação documento/exibição, há motivos convincentes para seguir esse modelo na maioria dos casos. Uma das melhores é quando você precisa de vários modos de exibição do mesmo documento, como uma planilha e uma exibição de gráfico. O modelo de documento/exibição permite que um objeto de exibição separado represente cada exibição dos dados, enquanto o código comum a todas as exibições (como um mecanismo de cálculo) pode residir no documento. O documento também assume a tarefa de atualizar todas as visualizações sempre que os dados mudam.

A arquitetura de documento/exibição MFC facilita o suporte a vários modos de exibição, vários tipos de documentos, janelas divisórias e outros recursos valiosos da interface do usuário.

As partes da estrutura MFC mais visíveis tanto para o usuário quanto para você, o programador, são o documento e a exibição. A maior parte do seu trabalho no desenvolvimento de uma aplicação com o framework vai para escrever suas classes de documento e de visualização. Esta família de artigos descreve:

  • Os objetivos dos documentos e pontos de vista e como eles interagem no quadro.

  • O que você deve fazer para implementá-los.

No centro do documento/visualização estão quatro classes principais:

A classe CDocument (ou COleDocument) suporta objetos usados para armazenar ou controlar os dados do programa e fornece a funcionalidade básica para classes de documento definidas pelo programador. Um documento representa a unidade de dados que o usuário normalmente abre com o comando Abrir no menu Arquivo e salva com o comando Salvar no menu Arquivo.

O CView (ou uma de suas muitas classes derivadas) fornece a funcionalidade básica para classes de exibição definidas pelo programador. Uma vista é anexada a um documento e atua como um intermediário entre o documento e o utilizador: a vista processa uma imagem do documento no ecrã e interpreta a entrada do utilizador como operações sobre o documento. A vista também renderiza a imagem para impressão e pré-visualização de impressão.

CFrameWnd (ou uma de suas variações) suporta objetos que fornecem o quadro em torno de uma ou mais exibições de um documento.

CDocTemplate (ou CSingleDocTemplate ou CMultiDocTemplate) suporta um objeto que coordena um ou mais documentos existentes de um determinado tipo e gerencia a criação dos objetos corretos de documento, exibição e janela de quadro para esse tipo.

A figura a seguir mostra a relação entre um documento e a sua visualização.

Visualização é a parte do documento que é exibida.
Documento e visualização

A implementação de documento/visualização na biblioteca de classes separa os dados propriamente ditos da sua exibição e das operações do usuário sobre os dados. Todas as alterações nos dados são gerenciadas por meio da classe de documento. O modo de exibição chama essa interface para acessar e atualizar os dados.

Os documentos, as vistas associadas e as janelas de moldura que enquadram as vistas são criados por um modelo de documento. O modelo de documento é responsável por criar e gerenciar todos os documentos de um tipo de documento.

O que você quer saber mais sobre

Ver também

Elementos da interface do usuário
Mac OS
Janelas com moldura
Modelos de Documentos e o Processo de Criação de Documentos/Vistas
Criação de Documentos/Vistas
Criando novos documentos, janelas e modos de exibição