Relações entre objetos MFC
Para ajudar a colocar o processo de criação de exibição do documento em perspectiva, considere um programa em execução: um documento, a janela do quadro usado para conter o modo de exibição e a exibição associada ao documento.
Um documento mantém uma lista de modos de exibição de documento e um ponteiro para o modelo de documento que criou o documento.
Um modo de exibição mantém um ponteiro para seu documento e é um filho de sua janela de quadro pai.
Uma janela de quadro do documento mantém um ponteiro para o atual modo de exibição ativo.
Um modelo de documento mantém uma lista dos documentos abertos.
O aplicativo mantém uma lista de seus modelos de documento.
Windows mantém registro de todas as janelas abertas para enviar mensagens a eles.
Essas relações são estabelecidas durante a criação de exibição do documento.A tabela a seguir mostra como os objetos em um programa em execução podem acessar outros objetos.Qualquer objeto pode obter um ponteiro para o objeto application chamando a função global AfxGetApp.
Acesso a outros objetos no seu aplicativo
Do objeto |
Como acessar outros objetos |
---|---|
Document |
Use GetFirstViewPosition e GetNextView para acessar a lista de exibição do documento. Chamar GetDocTemplate para obter o modelo de documento. |
View |
Chamar GetDocument para obter o documento. Chamar GetParentFrame para obter a janela do quadro. |
Janela de quadro do documento |
Chamar GetActiveView para obter o modo de exibição atual. Chamar GetActiveDocument para obter o documento anexado ao modo de exibição atual. |
Janela de quadro MDI |
Chamar MDIGetActive obter atualmente ativo CMDIChildWnd. |
Normalmente, uma janela de quadro tem um modo de exibição, mas às vezes, como no windows do divisor, a mesma janela do quadro contém vários modos de exibição.A janela do quadro mantém um ponteiro para a exibição ativa atualmente; o ponteiro é atualizado sempre que outro modo de exibição está ativado.
Observação |
---|
Um ponteiro para a janela do quadro principal é armazenado na m_pMainWnd variável de membro do objeto application.Uma chamada para OnFileNew em seu substituto do InitInstance função de membro CWinApp define m_pMainWnd para você.Se você não chamar OnFileNew, você deve definir o valor da variável no InitInstance você mesmo.(SDI plicativos componente (servidor) podem não definir a variável se a opção /Embedding estiver na linha de comando.) Observe que m_pMainWnd é agora um membro da classe CWinThread em vez de CWinApp. |
Consulte também
Conceitos
Documentar modelos e o processo de criação de exibição do documento
Criação do modelo de documento