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. O modo de 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. O modo de exibição obtém dados de exibição do documento e comunica de volta ao documento quaisquer alterações de dados.

Embora você possa substituir ou ignorar facilmente a separação de documento/exibição, há razões convincentes para seguir esse modelo na maioria dos casos. Um dos 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 todos os modos de exibição (como um mecanismo de cálculo) pode residir no documento. O documento também assume a tarefa de atualizar todos os modos de exibição sempre que os dados forem alterados.

A arquitetura de documento/exibição do MFC facilita o suporte a vários modos de exibição, vários tipos de documentos, janelas de divisor 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 de 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.

View is the part of the document that's displayed.
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. O modo de exibição chama essa interface para acessar e atualizar os dados.

Documentos, suas exibições associadas e as janelas de quadro que enquadram as exibições são criados por um modelo de documento. Cada modelo de documento é responsável por criar e gerenciar todos os documentos do respectivo tipo.

O que mais você deseja saber?

Confira também

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