Alternativas para a documento / View Architecture
Aplicativos MFC normalmente usam o documento / exibir arquitetura para gerenciar informações, formatos de arquivo e a representação visual dos dados para os usuários.Para a maioria dos aplicativos de área de trabalho, a arquitetura/modo de exibição do documento é uma arquitetura de aplicativo apropriado e eficiente.Essa arquitetura separa os dados contra exibição e, na maioria dos casos, simplifica seu aplicativo e reduz o código redundante.
No entanto, a arquitetura de exibição de documento/não é apropriada para algumas situações.Considere estes exemplos:
Se estiver portar um aplicativo escrito em C para Windows, convém concluir sua porta antes de adicionar/modo de exibição de documentos suporte ao seu aplicativo.
Se você estiver escrevendo um utilitário leve, você pode achar que você pode fazer sem arquitetura/modo de exibição do documento.
Se seu código original já combina gerenciamento de dados com dados exibindo, movendo o código para o modelo/exibição de documento não é que vale a pena o esforço porque você deve separar os dois.Você pode preferir deixar o código sistema autônomo está.
Para criar um aplicativo que não usa a arquitetura/modo de exibição do documento, desmarcar o Documento/exibir suporte de arquitetura caixa de seleção na etapa 1 do Assistente do aplicativo MFC.See MFC aplicativo assistente para obter detalhes.
Observação: |
---|
Aplicativos baseados no diálogo produzidos pelo Assistente do aplicativo MFC não usam a arquitetura/modo de exibição do documento, portanto, o Documento/exibir suporte de arquitetura caixa de seleção estará desabilitado se você selecionar o tipo de aplicativo de caixa de diálogo. |
sistema autônomo assistentes do Visual C++, bem sistema autônomo sistema autônomo editores de fonte e a caixa de diálogo, trabalhar com o aplicativo gerado exatamente sistema autônomo fariam com qualquer Outros aplicativo gerado pelo assistente.O aplicativo pode oferecer suporte a barras de ferramentas, barras de rolagem e uma BAR de status e possui um Sobre box.Seu aplicativo não registrará quaisquer modelos de documento e não irá conter uma classe de documento.
Lembre-se de que seu aplicativo gerado tem uma classe de modo de exibição, CChildView, derivado de CWnd. MFC cria e posiciona uma instância da classe modo de exibição em janelas de quadro criadas pelo seu aplicativo.MFC ainda impõe usando uma janela de visualização porque ele simplifica o posicionamento e gerenciamento de conteúdo do aplicativo.Você pode adicionar código de pintura à OnPaint membro dessa classe. Seu código deve adicionar barras de rolagem para o modo de exibição em vez de para o quadro.
Porque o documento / arquitetura de modo de exibição fornecida pelo MFC é responsável pela implementação muitos dos recursos básicos do aplicativo e sua ausência no seu projeto significa que você é responsável por implementar vários recursos importantes do seu aplicativo:
sistema autônomo o fornecido pelo MFC Application assistente, o menu para seu aplicativo contém apenas New e Exit sobre sistema autônomo comandos do Arquivo menu.(The New comando oferece suporte somente aos aplicativos MDI, não SDI aplicativos sem documento/exibir suportam.) O recurso de menu gerado não oferecerá suporte a uma lista MRU (usado mais recentemente).
Você deve adicionar o manipulador de funções e implementações para os comandos que o aplicativo oferecerá suporte, incluindo em aberto and Salvar on the Arquivo menu.MFC normalmente fornece código para oferecer suporte a esses recursos, mas que suporte totalmente está limite a arquitetura/modo de exibição do documento.
A barra de ferramentas para o seu aplicativo, se solicitado, será mínima.
É altamente recomendável que você use o Assistente de aplicativo MFC para criar aplicativos sem arquitetura/modo de exibição do documento, porque o assistente garante uma arquitetura correta do MFC.No entanto, se você deve evitar usar o assistente, aqui estão várias abordagens para ignorar o documento / exibir arquitetura no seu código:
Tratar o documento sistema autônomo um sufixo não utilizado e implementar o código de gerenciamento de dados da classe de modo de exibição, conforme sugerido acima.Sobrecarga para o documento é relativamente baixa.Um único CDocument incorre em uma pequena quantidade de sobrecarga por si só, mais a sobrecarga pequena de objetoCDocumentclasses base do , CCmdTarget and CObject.Duas classes último são pequenas.
Declarado em CDocument:
Two CString objetos.
Três BOOLs.
One CDocTemplate ponteiro.
One CPtrList objeto que contém uma lista de modos de exibição do documento.
Além disso, o documento requer o período de time para criar o objeto de documento, seus objetos de exibição, uma janela do quadro e um objeto de modelo de documento.
Trate o documento e o modo de exibição sistema autônomo colossais não utilizados.Colocar seu gerenciamento de dados e código desenho a janela do quadro em vez do modo de exibição.Essa abordagem é o modelo de programação da linguagem C mais próxima.
Substitua as partes da estrutura do MFC que criar o documento e o modo de exibição para eliminar a criá-las em todos os.O processo de criação do documento começa com uma telefonar para CWinApp::AddDocTemplate. Eliminar a telefonar de InitInstance membro funcione e, em vez disso, cria uma janela em um quadro InitInstance Você mesmo. Coloque o código de gerenciamento de dados em sua classe de janela de quadro.O processo de criação/modo de exibição de documentos é ilustrado na Criação de documento/exibição.Isso é mais trabalho e requer um entendimento mais profundo da estrutura, mas ele libera totalmente da sobrecarga/modo de exibição do documento.
O artigo MFC: Usando classes sem documentos de banco de dados e modos de exibição dá exemplos mais concretos de modo de exibição de documentos/alternativas no contexto de aplicativos de banco de dados.