Compartilhar via


Arquitetura de documento/exibição

Por padrão, o Assistente de Aplicativo MFC 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 exibições dos dados. A exibição exibe os dados e gerencia a interação do usuário com ele, incluindo seleção e edição.

Nesse modelo, um objeto de documento MFC lê e grava dados no armazenamento persistente. O documento também pode fornecer uma interface para os dados onde quer que residam (como em um banco 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 do usuário e a edição de dados. A exibição obtém dados de exibição do documento e comunica-se de volta ao documento, quaisquer alterações de dados.

Embora você possa substituir ou ignorar facilmente a separação de documento/exibição, há motivos convincentes para seguir esse modelo na maioria dos casos. Uma das melhores é quando você precisa de várias exibições 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 exibições sempre que os dados são alterados.

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

As partes da estrutura MFC mais visíveis para o usuário e para você, o programador, são o documento e a exibição. A maior parte do seu trabalho no desenvolvimento de um aplicativo com a estrutura passa a escrever seu documento e exibir classes. Esta família de artigos descreve:

  • As finalidades de documentos e exibições e como eles interagem na estrutura.

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

No centro do documento/exibição estão quatro classes-chave:

A classe CDocument (ou COleDocument) dá suporte a 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 exibição é anexada a um documento e atua como um intermediário entre o documento e o usuário: a exibição renderiza uma imagem do documento na tela e interpreta a entrada do usuário como operações no documento. O modo de exibição também renderiza a imagem para impressão e visualização de impressão.

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

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

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

A exibição é a parte do documento que é exibida.
Documento e Exibição

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

Documentos, suas exibições associadas e as janelas de quadros que enquadram as exibições 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

Consulte também

Elementos de interface de usuário
Windows
Janelas de quadro
Modelos de documento e o processo de criação de documento/exibição
Criação de documento/exibição
Criando novos documentos, Windows e exibições