Compartilhar via


Vários tipos de documento, exibições e janelas com moldura

A relação padrão entre um documento, sua exibição, e a janela do quadro é descrita em Criação de documento/exibição. Muitos aplicativos dão suporte a um único tipo de documento (mas possivelmente vários documentos abertos desse tipo) com uma única exibição no documento e somente em uma janela do quadro pelo documento. Mas alguns aplicativos podem precisar alterar uma ou mais dessas opções.

Que você deseja saber mais?

  • Vários tipos de documento

  • Várias exibições

  • Várias janelas do quadro

  • Separador do windows

Vários tipos de documento

O assistente de aplicativo MFC cria uma classe de um único documento para você. Em alguns casos, entretanto, você pode precisar dar suporte a mais de um tipo de documento. Por exemplo, o aplicativo pode precisar a planilha e gráfico documentos. Cada tipo de documento é representado por sua própria classe do documento e provavelmente por sua própria classe da exibição também. Quando o usuário escolhe o novo comando de Arquivo, a estrutura exibe uma caixa de diálogo que lista os tipos de documento com suporte. Então criará um documento do tipo escolhido pelo usuário. Cada tipo de documento é gerenciado por seu próprio objeto de documento modelo.

Para criar classes adicionais do documento, consulte Adicionando uma classe. Escolha CDocument como o tipo de classe para derivar do e forneça as informações solicitadas do documento. Implementar em dados novos da classe.

Para permitir que a estrutura saber sobre sua classe adicional do documento, você deve adicionar uma segunda chamada para AddDocTemplate na substituição de InitInstance da classe do aplicativo. Para obter mais informações, consulte Modelos do documento.

Várias exibições

Muitos documentos requer somente uma única exibição, mas é possível dar suporte a mais de uma exibição de um único documento. Para ajudá-lo a implementar várias exibições, um objeto de documento mantém uma lista das exibições, o fornece funções de membro para adicionar e remover exibições, e fornece a função de membro de UpdateAllViews para permitir que vários exibições souber quando os dados de documento foram alterados.

MFC O da suporte a três interfaces do usuário comuns que requerem várias exibições no mesmo documento. Esses modelos são:

  • Objetos de exibição da mesma classe, cada um em uma janela separada do quadro de documentos MDI.

    Talvez você queira oferecer suporte à criação de uma segunda janela do quadro em um documento. O usuário pode escolher um comando de nova janela abrir um segundo bloco com uma exibição do mesmo documento e usar os dois peças para exibir simultaneamente partes diferentes do documento. A estrutura aceitar o comando de nova janela no menu janela para aplicativos MDI duplicando a janela e a exibição iniciais do quadro anexadas ao documento.

  • Os objetos de exibição da mesma classe no mesmo documento enquadram a janela.

    As janelas do separador racharam o espaço de exibição de uma única janela do documento em exibições separadas do múltiplo de documento. A estrutura criar vários objetos de exibição da mesma classe da exibição. Para obter mais informações, consulte Separador do windows.

  • Exibir objetos de classes diferentes em uma única janela do quadro.

    Neste modelo, uma variação da janela do divisor, várias exibições possui uma única janela do quadro. As exibições são construídas das classes diferentes, cada exibição que fornece uma maneira diferente de exibir o mesmo documento. Por exemplo, uma exibição pode mostrar um documento de processamento de texto no modo normal quando outra exibição mostrar o no modo de esboços. Um controle do separador permite que o usuário ajuste os tamanhos relacionados exibições.

A figura a seguir, dividido em partes, a, b e c, mostra que os três modelos de interface do usuário na ordem apresentaram acima.

Interfaces do usuário de várias exibição

Interfaces de usuário de exibição de vários

A estrutura fornece esses modelos implementando o comando de nova janela e fornecendo a classe CSplitterWnd, como discutido em Separador do windows. Você pode implementar outros modelos usando esses como seu ponto de início. Para programas de exemplo que ilustram configurações diferentes exibições, enquadram o windows, e separadores, consulte MFC Exemplos.

Para obter mais informações sobre como UpdateAllViews, consulte a classe CViewna referência de MFC e no Exemplo de garrancho.

Várias janelas do quadro

Você pode usar o comando na nova janela no menu janela para aplicativos de documentos para criar uma segunda janela do quadro no mesmo documento. Para obter mais informações, consulte o primeiro modelo na figura Interfaces do usuário de várias exibição.

Separador do windows

Em uma janela do divisor, a janela é, ou pode ser, rachou os painéis em dois ou mais roláveis. Um controle de divisão (ou “a caixa de divisão”) no quadro de janela ao lado das barras de rolagem permitem ao usuário ajuste os tamanhos relativos dos painéis. Cada painel é uma exibição no mesmo documento. Separadores em “dinâmicos”, as exibições são da mesma classe, conforme mostrado na figura Interfaces do usuário de várias exibiçãoparte b. Separadores em “estáticos”, as exibições podem ser de classes diferentes. As janelas do separador de ambos os tipos são suportadas pela classe CSplitterWnd.

As janelas dinâmicos do divisor, com exibições da mesma classe, permitem que o usuário divide uma janela em vários painéis à vontade e role nos painéis diferentes para ver partes diferentes do documento. O usuário pode também unsplit a janela remover as exibições adicionais. As janelas de separador adicionadas a Exemplo de garrancho é um exemplo. Esse tópico descreve a técnica para criar o windows dinâmicas do separador. Uma janela dinâmico do separador é mostrada na figura Interfaces do usuário de várias exibiçãoparte b.

As janelas estáticos do divisor, com exibições de classes diferentes, inicie com a janela racharam em vários painéis, cada com uma finalidade diferente. Por exemplo, no editor de bitmap do Visual C++, a janela da imagem a seguir mostra dois painéis lado a lado. O painel à esquerda exibe uma imagem em tamanho natural de bitmap. O painel à direita exibe uma imagem aplicada zoom ou ampliada do mesmo bitmap. Os painéis de “são separados por uma barra separador” que o usuário pode arrastar para alterar os tamanhos relativos dos painéis. Uma janela estático do separador é mostrada na parte c da figura Interfaces do usuário de várias exibição.

Para obter mais informações, consulte a classe CSplitterWnd na Referência do MFC e em Exemplos de MFC.

Consulte também

Conceitos

Arquitetura de documento/exibição