Compartilhar via


Documentos, exibições e estrutura

No centro da estrutura MFC estão os conceitos de documento e exibiçã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 Abrir 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.) Um modo de 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 de 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.

  • Os 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 de quadro

    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, as janelas do documento são janelas filho 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. Também deriva uma classe de CMDIChildWnd para personalizar cada tipo distinto de janelas de quadro de documento MDI a que seu aplicativo dá suporte.

  • Os documentos.

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

    Se você quiser a funcionalidade OLE em seu aplicativo, derive sua classe de documento de COleDocument uma de suas classes derivadas, dependendo do tipo de funcionalidade de que você precisa.

  • 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 as classes CTreeView, CListView e CRichEditView.

Em um aplicativo em execução, esses objetos respondem cooperativamente às ações do usuário, associadas por comandos e outras mensagens. Um só 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.

Diagram of the objects in a running SDI application.
Objetos em um aplicativo SDI em execução

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

Confira também

Usando as classes para escrever aplicativos para Windows