Partilhar via


Relacionamentos entre objetos MFC

Para ajudar colocar o processo de criação do documento/exibição na perspectiva, consulte um programa em execução: um documento, a janela do quadro usada para conter a exibição, e a exibição associada ao documento.

  • Um documento mantém uma lista das exibições desse documento e um ponteiro para o modelo de documento que criou o documento.

  • Uma exibição mantém um ponteiro para o documento e é um filho da janela pai do quadro.

  • Uma janela do quadro do documento mantém um ponteiro para a exibição ativa atual.

  • Um modelo de documento mantém uma lista dos documentos abertos.

  • O aplicativo mantém uma lista dos modelos do documento.

  • As janelas controlam de todas as janelas abertas para que possa enviar-lhes mensagens.

Essas relações são estabelecidas durante a criação do documento/exibição. 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 do aplicativo chamando a função global AfxGetApp.

Obter acesso a outros objetos em seu aplicativo

Do objeto

Como acessar outros objetos

Documento

Use GetFirstViewPosition e GetNextView para acessar a lista de exibição do documento.

Chame GetDocTemplate para obter o modelo de documento.

View

Chame GetDocument para obter o documento.

Chame GetParentFrame para obter a janela do quadro.

Janela do quadro do documento

Chame GetActiveView para obter a exibição atual.

Chame GetActiveDocument para obter o documento associado à exibição atual.

Janela do quadro MDI

Chame MDIGetActive para obter CMDIChildWndatualmente ativo.

Normalmente, uma janela do quadro tem uma exibição, mas às vezes, como no windows do divisor, a mesma janela do quadro contém várias exibições. A janela do quadro mantém um ponteiro para a exibição atualmente ativo; o ponteiro é atualizado enquanto outra exibição é ativada.

Dica

Um ponteiro para a janela do quadro principal é armazenado na variável de membro de m_pMainWnd do objeto do aplicativo.Uma chamada para OnFileNew na substituição da função de membro de InitInstance de CWinApp define m_pMainWnd para você.Se você não chama OnFileNew, você deve definir o valor da variável em InitInstance você mesmo. (Os aplicativos do componente através de SDI (servidor) não podem definir a variável /Embedding se estiver na linha de comando.) Observe que m_pMainWnd agora é um membro da classe CWinThread em vez de CWinApp.

Consulte também

Conceitos

Modelos de documento e o processo de criação de documento/exibição

Criação do modelo de documento

Criação de documento/exibição

Criando novos documentos, janelas e exibições