Compartilhar via


Vários tipos de documento, exibições e Windows de quadro

Relação entre um documento, sua visão e sua janela de quadro padrão é descrita em Criação de exibição do documento.Muitos aplicativos oferecem suporte a um tipo de documento único (mas possivelmente vários documentos abertos desse tipo) com uma única exibição no documento e janela de apenas um quadro por documento.Mas alguns aplicativos podem precisar alterar um ou mais desses padrões.

O que você deseja saber mais sobre?

  • Vários tipos de documentos

  • Vários modos de exibição

  • Várias janelas de quadro

  • Windows divisor

Vários tipos de documentos

O Assistente de aplicativo do MFC cria uma classe de documento único para você.Em alguns casos, porém, talvez você precise oferecer suporte a mais de um tipo de documento.Por exemplo, seu aplicativo pode precisar documentos gráficos e planilhas.Cada tipo de documento é representado por sua própria classe de documento e provavelmente por sua própria classe de modo de exibição também.Quando o usuário escolhe o comando novo arquivo, a estrutura exibe uma caixa de diálogo que lista os tipos de documento com suporte.Cria um documento do tipo que o usuário escolhe.Cada tipo de documento é gerenciado pelo seu próprio objeto de modelo de documento.

Para criar classes de documento extra, consulte Adicionar uma classe de.Escolha CDocument como o tipo de classe para derivar e fornecer as informações do documento solicitado.Implemente os dados da nova classe.

Para permitir que a estrutura de conhecer a sua classe de documento extra, você deve adicionar uma segunda chamada para AddDocTemplate na sua classe de aplicativo InitInstance substituir.Para obter mais informações, consulte Modelos de documentos.

Vários modos de exibição

Muitos documentos exigem apenas um modo de exibição, mas é possível oferecer suporte a mais de uma exibição de um único documento.Para ajudá-lo a implementar vários modos de exibição, um objeto de documento mantém uma lista dos seus modos de exibição, fornece funções de membro para adicionar e remover os modos de exibição e fornece a UpdateAllViews função de membro para permitir vários modos de exibição sabem quando os dados do documento foi alterado.

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

  • Exibir objetos da mesma classe, cada um em uma janela de quadro do documento MDI separada.

    Talvez você queira criar uma segunda janela do quadro em um documento de suporte.O usuário pode escolher um comando nova janela para abrir um segundo quadro com um modo de exibição do mesmo documento e usar os dois quadros para exibir diferentes partes do documento simultaneamente.A estrutura suporta o comando nova janela no menu janela para aplicativos MDI duplicando a janela de quadro inicial e exibir anexado ao documento.

  • Exibir objetos da mesma classe na mesma janela de quadro do documento.

    Windows divisor dividir o espaço de exibição de uma janela de documento único em vários modos de exibição separados do documento.O framework cria vários objetos de exibição da mesma classe de modo de exibição.Para obter mais informações, consulte Windows divisor.

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

    Nesse modelo, uma variação da janela separadora, vários modos de exibição compartilham uma janela de quadro único.As exibições são construídas com classes diferentes, cada modo de exibição fornecendo uma maneira diferente para exibir o mesmo documento.Por exemplo, um modo de exibição pode mostrar um documento de processamento de texto no modo normal, enquanto outro modo de exibição mostra-la no modo de estrutura de tópicos.Um controle de splitter permite ao usuário ajustar os tamanhos relativos dos modos de exibição.

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

Exibição de várias Interfaces de usuário

Várias Interfaces de usuário de modo de exibição

A estrutura fornece esses modelos, Implementando o comando nova janela e fornecendo a classe CSplitterWnd, conforme discutido em Windows divisor.Você pode implementar outros modelos usando esses como ponto de partida.Para programas de exemplo que ilustram configurações diferentes de modos de exibição, o windows de quadro e divisores, consulte Amostras de MFC.

Para obter mais informações sobre UpdateAllViews, consulte a classe CView no Referência MFC e o Rabisco exemplo.

Várias janelas de quadro

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

Windows divisor

Em uma janela de separador, a janela é ou pode ser dividido em dois ou mais painéis roláveis.Um divisor controle (ou "dividir caixa") do quadro de janela ao lado das barras de rolagem permite ao usuário ajustar o tamanho relativo dos painéis.Cada painel é um modo de exibição do mesmo documento.Divisores "dinâmicos", as exibições são da mesma classe, conforme mostrado na figura a parte b Modo de exibição de várias Interfaces de usuário.Divisores "estáticos", os modos de exibição podem ser de classes diferentes.Windows divisor de ambos os tipos são suportados pela classe CSplitterWnd.

Windows divisor dinâmico, modos de exibição de classe mesma, permitir que o usuário dividir uma janela em vários painéis à vontade e role diferentes painéis para ver diferentes partes do documento.O usuário pode também são congelado a janela para remover os modos de exibição adicionais.Windows divisor adicionados para o Rabisco exemplo são um exemplo.Esse tópico descreve a técnica para criar janelas de divisor dinâmico.Uma janela separadora dinâmica é mostrada na figura a parte b Modo de exibição de várias Interfaces de usuário.

Inicie o windows divisor estático, modos de exibição de classes diferentes, com a janela dividida em vários painéis, cada um com uma finalidade diferente.Por exemplo, no editor de bitmap do Visual C++, a janela de imagem mostra dois painéis lado a lado.O painel esquerdo exibe uma imagem life-sized do bitmap.O painel direito exibe uma imagem com zoom ou ampliada do mesmo bitmap.Os painéis são separados por uma "barra de divisão" que o usuário pode arrastar para alterar os tamanhos relativos dos painéis.Uma janela separadora estático é mostrada na parte c da figura Modo de exibição de várias Interfaces de usuário.

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

Consulte também

Conceitos

Arquitetura de exibição de documentos