Você está offline; aguardando reconexão

Não há suporte para seu navegador

Você precisa atualizar seu navegador para usar o site.

Atualize para a versão mais recente do Internet Explorer

Como usar a classe CFormView na interface de documento único (SDI) e vários aplicativos de interface (MDI) do documento

IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.

Clique aqui para ver a versão em Inglês deste artigo: 98598
Observação Microsoft Visual C++ .NET (2002) oferece suporte o modelo de código gerenciado que é fornecido pelo Microsoft .NET Framework e o modelo de código do Windows de Microsoft nativo não gerenciado. As informações neste artigo se aplicam somente ao código do Visual C++ não gerenciado.

Observação Microsoft Visual C++ 2005 oferece suporte o modelo de código gerenciado que é fornecido pelo Microsoft .NET Framework e o modelo de código do Windows de Microsoft nativo não gerenciado.
Sumário
A classe CFormView fornece um método conveniente para colocar controles em um modo de exibição que se baseia em um modelo de caixa de diálogo. O procedimento geral para usar um CFormView é descrito na documentação para a classe e é ilustrado nos aplicativos de exemplo VIEWEX e CHKBOOK fornecidos com o Microsoft Foundation Classes (MFC) versões 2.x e acima. No entanto, esses aplicativos Demonstre não fazer o tamanho inicial da janela de quadro para ser o mesmo que o tamanho inicial do formulário.

A seção a seguir lista as etapas necessárias para oferecer suporte a criação de uma interface de documento único (SDI) ou vários documento MDI (interface) aplicativo baseado em um CFormView, dimensionar a janela de quadro inicial em torno do formulário, alterar o estilo do quadro e fechando um documento MDI usando um botão no formulário.
Mais Informações
As etapas a seguir descrevem como criar um AppWizard MFC aplicativo usando o CFormView como o modo de exibição padrão:
  1. Use o AppWizard para gerar um aplicativo SDI ou MDI. Isso insere um modelo de caixa de diálogo com os estilos corretos definido para o arquivo de recurso do seu projeto.

    o visual Studio 6.0 :

    Na etapa 6 do AppWizard, selecione a classe de modo de exibição. Na caixa de combinação classe base , selecione CFormView para especificar CFormView como a classe base.

    o visual Studio .NET ou Visual Studio 2005 :

    Na etapa 1 do AppWizard, selecione Classes geradas . Na caixa de combinação classe base , selecione CFormView para especificar CFormView como a classe base.
  2. Substituir a função de membro OnUpdate() e chamar UpdateData() conforme documentado na documentação do CFormView para atualizar as variáveis de membro com os dados do documento atual e para executar dados da caixa de diálogo (DDX) do exchange.

    Observação : UpdateData não é virtual e chamar a classe base garante que a classe derivada DoDataExchange é chamado pelo polimorfismo padrão. Os estados de documentação CFormView para chamar, não substituir UpdateData.
  3. Se você deseja definir o tamanho inicial do modo de exibição formulário, substituir a função OnInitialUpdate(). O texto abaixo fornece informações adicionais sobre esta etapa, que é um pouco diferente em um aplicativo SDI ou MDI.

Alterar o tamanho de um quadro SDI principal em um CFormView

Para alterar o tamanho do quadro principal de um aplicativo SDI (que usa CFormView como seu modo de exibição de classe) para ser o tamanho apropriado para o formulário criado no aplicativo Studio, substituir a função OnInitialUpdate() em sua classe derivada de CFormView, da seguinte maneira:
      void CMyFormView::OnInitialUpdate()      {         CFormView::OnInitialUpdate();         GetParentFrame()->RecalcLayout();         ResizeParentToFit(); // default argument is TRUE      }				
ResizeParentToFit() A função não impede que o formulário alterar tamanho quando o usuário altera o tamanho do quadro principal aplicativo (barras de rolagem são adicionadas automaticamente se necessário). Para modificar o estilo da janela do quadro que é o pai de um modo de formulário, você pode substituir a função PreCreateWindow() a classe CMainFrame gerada pelo AppWizard. Por exemplo, para remover o estilo WS_THICKFRAME e impedir que o usuário altere o tamanho da janela, declare PreCreateWindow() em MAINFRM.H e adicione o código a seguir a MAINFRM.CPP:
      BOOL CMainFrame::PreCreateWindow(CREATESTRUCT &cs)      {         cs.style &= ~WS_THICKFRAME;         return CFrameWnd::PreCreateWindow(cs);      }				

Alterar o tamanho de um quadro de filho MDI em um CFormView

O processo de alterar o tamanho de um quadro de filho MDI é semelhante a alterar o tamanho de um quadro principal para um aplicativo SDI, conforme explicado acima. No entanto, a chamada RecalcLayout() não é necessária.

Para alterar o tamanho de um quadro de filho MDI ao redor de um modo de exibição formulário, substitua a função OnInitialUpdate() em sua classe derivada de CFormView da seguinte maneira:
      void CMDIFormView::OnInitialUpdate()      {         CFormView::OnInitialUpdate();         ResizeParentToFit(); // Default argument is TRUE.      }				
se o aplicativo substitui o argumento padrão para a função ResizeParentToFit(), essencialmente as mesmas conseqüências ocorrerem como um aplicativo SDI, conforme explicado acima. Além disso, a janela filho pode ser muito grande para o quadro principal MDI delimitador ou para a tela inteira.

Para alterar o estilo do quadro MDI filho (por exemplo, para remover o estilo WS_THICKFRAME; portanto, o usuário não pode alterar o tamanho da janela), derivar uma classe da janela filho MDI e substituir a função PreCreateWindow conforme demonstrado no exemplo SDI acima.

Fechar um formulário MDI com um botão

Para criar um botão em um formulário que fecha o documento, adicione um manipulador de mensagem para a mensagem BN_CLICKED à classe CFormView. Verifique se os botões no CFormView não tem os identificadores IDOK ou IDCANCEL padrão. Em caso afirmativo, entradas incorretas no mapa da mensagem e funções incorretas para os botões serão criadas.

Depois que o manipulador de mensagem estiver no lugar, você pode simular o comando Fechar no arquivo de menu com o código a seguir:
      void CMyForm::OnClickedButton1()      {         PostMessage(WM_COMMAND, ID_FILE_CLOSE);      }				
esse método para fechar um formulário solicitará a você salvar o arquivo se a função de membro IsModified() associada ao documento retornará verdadeiro.
kbfasttips

Warning: This article has been translated automatically

Propriedades

ID do Artigo: 98598 - Última Revisão: 01/05/2006 01:11:56 - Revisão: 4.0

  • Microsoft Foundation Class Library 4.2
  • kbmt kbdocview kbhowto kbmdi kbuidesign KB98598 KbMtpt
Comentários
> style="display: none; " src="https://c1.microsoft.com/c.gif?DI=4050&did=1&t="> onload="var m=document.createElement('meta');m.name='ms.dqp0';m.content='false';document.getElementsByTagName('head')[0].appendChild(m);" src="http://c1.microsoft.com/c.gif?"> l>pt> rc="https://c.microsoft.com/ms.js"> amp;t=">