Compartilhar via


Documentos, visões e a estrutura

No centro da estrutura MFC estão os conceitos de documento e visualização. Um documento é um objeto de dados com o qual o usuário interage em uma sessão de edição. Ele é criado pelo comando Novo ou Aberto no menu Arquivo e normalmente é salvo em um arquivo. (Documentos MFC padrão, derivados da classe CDocument, são diferentes de documentos ativos e documentos compostos OLE.) Uma exibição é um objeto de janela por meio do qual o usuário interage com um documento.

Os principais objetos em um aplicativo em execução são:

  • Objetos de thread

    Se o aplicativo criar threads separados de execução, por exemplo, para fazer cálculos em segundo plano, você usará classes derivadas de CWinThread. CWinApp em si é derivado CWinThread e representa o thread primário de execução (ou o processo principal) em seu aplicativo. Você também pode usar o MFC em threads secundários.

  • O objeto de aplicativo

    Sua classe de aplicativo (derivada de CWinApp) controla todos os objetos acima e especifica o comportamento do aplicativo, como inicialização e limpeza. O único objeto de aplicativo do aplicativo cria e gerencia os modelos de documento para qualquer tipo de documento compatível com o aplicativo.

  • O modelo ou modelos de documento

    Um modelo de documento orquestra a criação de documentos, exibições e janelas de quadros. Uma classe de modelo de documento específica, derivada da classe CDocTemplate, cria e gerencia todos os documentos abertos de um tipo. Aplicativos que dão suporte a mais de um tipo de documento têm vários modelos de documento. Use a classe CSingleDocTemplate para aplicativos SDI ou use a classe CMultiDocTemplate para aplicativos MDI.

  • As janelas com moldura

    As exibições são exibidas dentro de "janelas de quadro de documento". Em um aplicativo SDI, a janela de quadro de documento também é a "janela de quadro principal" para o aplicativo. Em um aplicativo MDI, janelas de documento são janelas filhas exibidas dentro de uma janela de quadro principal. Sua classe de janela de quadro principal derivada especifica os estilos e outras características das janelas de quadros que contêm seus modos de exibição. Se você precisar personalizar janelas de quadro, derive de CFrameWnd para personalizar a janela de quadro de documentos para aplicativos SDI. Derive de CMDIFrameWnd para personalizar a janela de quadro principal para aplicativos MDI. Para personalizar cada tipo distinto de janelas de quadro de documento MDI que seu aplicativo suporta, derive também uma classe de CMDIChildWnd.

  • Os documentos.

    Sua classe de documento (derivada de CDocument) especifica os dados do aplicativo.

    Se você quiser a funcionalidade OLE em seu aplicativo, derive a sua classe de documento de COleDocument ou de uma de suas classes que são derivadas, dependendo do tipo de funcionalidade necessária.

  • As exibições.

    Sua classe de exibição (derivada de CView) é a "janela nos dados" do usuário. A classe de exibição controla como o usuário vê os dados do documento e interage com ele. Em alguns casos, talvez você queira que um documento tenha várias exibições dos dados.

    Se você precisar de rolagem, derive de CScrollView. Se o modo de exibição tiver uma interface do usuário definida em um recurso de modelo de caixa de diálogo, derive de CFormView. Para dados de texto simples, use ou derive de CEditView. Para um aplicativo de acesso a dados baseado em formulário, como um programa de entrada de dados, derive de CRecordView (para ODBC). Também estão disponíveis classes CTreeView, CListViewe CRichEditView.

Em um aplicativo em execução, esses objetos respondem cooperativamente às ações do usuário, associados por comandos e outras mensagens. Um único objeto de aplicativo gerencia um ou mais modelos de documento. Cada modelo de documento cria e gerencia um ou mais documentos (dependendo se o aplicativo é SDI ou MDI). O usuário exibe e manipula um documento por meio de uma exibição contida dentro de uma janela de quadro. A figura a seguir mostra as relações entre esses objetos para um aplicativo SDI.

Diagrama dos objetos em um aplicativo SDI em execução.
Objetos em um aplicativo SDI em execução

O restante dessa família de artigos explica como as ferramentas da estrutura, o Assistente de Aplicativo MFC e os editores de recursos, criam esses objetos, como eles funcionam juntos e como você as usa em sua programação. Documentos, exibições e janelas de quadro são discutidos com mais detalhes em Objetos de Janela e Arquitetura de Documento/Exibição.

Consulte também

Usando as classes para desenvolver aplicativos para Windows