Como utilizar a classe CFormView na interface de documento (SDI) e várias aplicações de interface (MDI) do documento

Traduções de Artigos Traduções de Artigos
Artigo: 98598 - Ver produtos para os quais este artigo se aplica.
Expandir tudo | Reduzir tudo

Nesta página

Nota Microsoft Visual C++ .NET (2002) suporta o modelo de código gerido que é fornecido pelo Microsoft .NET Framework e o modelo de código do Microsoft Windows nativo não gerido. As informações neste artigo aplicam-se apenas ao código de Visual C++ não gerido.

Nota Microsoft Visual C++ 2005 suporta o modelo de código gerido que é fornecido pelo Microsoft .NET Framework e o modelo de código do Microsoft Windows nativo não gerido.

Sumário

A classe CFormView fornece um método conveniente para colocar controlos numa vista que se baseia um modelo de caixa de diálogo. O procedimento geral para utilizar um CFormView é descrito na documentação para a classe e é ilustrado nas aplicações de exemplo VIEWEX e CHKBOOK fornecidas com o Microsoft Foundation Classes (MFC) versões 2.x e acima. No entanto, estas aplicações não demonstram tornar o tamanho inicial da janela moldura mesmo que o tamanho inicial do formulário.

A secção seguinte lista os passos necessários para suportar a criação de uma único documento interface (SDI) ou vários documento interface (MDI) aplicação baseada no CFormView, dimensionar a janela inicial moldura à volta do formulário, alterar o estilo da moldura e fechar um documento MDI utilizando um botão no formulário.

Mais Informação

Os seguintes passos descrevem como criar um AppWizard MFC aplicação utilizando o CFormView como vista predefinida:
  1. Utilize o AppWizard para gerar uma aplicação SDI ou MDI. Insere um modelo de caixa de diálogo com os estilos correctos para o ficheiro de recursos do projecto.

    o visual Studio 6.0 :

    No passo 6 do AppWizard, seleccione a classe de vista. Na caixa de combinação de classe base , seleccione CFormView para especificar CFormView como a classe base.

    visual Studio .NET ou Visual Studio 2005 :

    No passo 1 do AppWizard, seleccione Classes gerado . Na caixa de combinação de classe base , seleccione CFormView para especificar CFormView como a classe base.
  2. Substituir a função de membro OnUpdate() e chamar UpdateData() de acordo com a documentação do CFormView para actualizar as variáveis de membros com os dados do documento actual e efectuem diálogo dados (DDX) do exchange.

    Nota : não é virtual UpdateData e chamar a classe base assegura que a classe derivada DoDataExchange denomina-se através de polimorfismo padrão. Os estados de documentação CFormView para chamar, não substituir UpdateData.
  3. Se deseja definir o tamanho inicial da vista de formulário, substitui a função OnInitialUpdate(). O texto abaixo fornece informações adicionais acerca deste passo, o que é ligeiramente diferente numa aplicação SDI ou MDI.

Alterar o tamanho de um pacote SDI principal à volta de um CFormView

Para alterar o tamanho da moldura principal de uma aplicação SDI (que utiliza CFormView como respectiva classe vista) para o tamanho adequado para o formulário que criou no aplicativo Studio, substituir a função OnInitialUpdate() a classe derivada de CFormView, da seguinte forma:
      void CMyFormView::OnInitialUpdate()
      {
         CFormView::OnInitialUpdate();
         GetParentFrame()->RecalcLayout();
         ResizeParentToFit(); // default argument is TRUE
      }
				
ResizeParentToFit() A função não impede o formulário de alterar o tamanho quando o utilizador altera o tamanho da moldura principal aplicação (as barras de deslocamento são adicionadas automaticamente se necessário). Para modificar o estilo da janela do pacote que é o principal de uma vista de formulário, pode substituir a função PreCreateWindow() a classe CMainFrame gerada pelo AppWizard. Por exemplo, para remover o estilo WS_THICKFRAME e impede que o utilizador alterar o tamanho da janela, declarar PreCreateWindow() em MAINFRM.H e adicione o seguinte código MAINFRM.CPP:
      BOOL CMainFrame::PreCreateWindow(CREATESTRUCT &cs)
      {
         cs.style &= ~WS_THICKFRAME;
         return CFrameWnd::PreCreateWindow(cs);
      }
				

Alterar o tamanho de um pacote de subordinado MDI à volta de um CFormView

O processo de alterar o tamanho de uma moldura de subordinado MDI é semelhante a alterar o tamanho de uma frame principal para uma aplicação SDI, como descrito acima. No entanto, a chamada RecalcLayout() não é necessária.

Para alterar o tamanho de uma moldura de subordinado MDI à volta de uma vista de formulário, substituir a função OnInitialUpdate() a classe derivada de CFormView da seguinte forma:
      void CMDIFormView::OnInitialUpdate()
      {
         CFormView::OnInitialUpdate();
         ResizeParentToFit(); // Default argument is TRUE.
      }
				
se a aplicação substitui o argumento predefinido para a função ResizeParentToFit(), essencialmente as consequências mesmas ocorrem como uma aplicação SDI, como descrito acima. Além disso, a janela subordinada pode ser demasiado grande para frame principal MDI envolvente ou para todo o ecrã.

Para alterar o estilo da moldura MDI subordinado (por exemplo, para remover o estilo WS_THICKFRAME o utilizador não pode alterar o tamanho da janela), derivar uma classe de janela MDI subordinado e substituir a função PreCreateWindow como demonstrado no exemplo acima SDI.

Fechar um formulário MDI com um botão

Para criar um botão num formulário que fecha o documento, adicione um processador de mensagens para a mensagem BN_CLICKED à classe CFormView. Certifique-se que os botões no CFormView não tem os identificadores IDOK ou IDCANCEL predefinido. Se o fizerem entradas incorrectas na mensagem mapa e incorrectas funções dos botões serão criadas.

Depois do processador de mensagens num local, pode simular o comando Fechar o ficheiro de menu com o seguinte código:
      void CMyForm::OnClickedButton1()
      {
         PostMessage(WM_COMMAND, ID_FILE_CLOSE);
      }
				
este método para fechar um formulário pede ao utilizador para guardar o ficheiro se a função de membro IsModified() associada ao documento devolve VERDADEIRO.

Propriedades

Artigo: 98598 - Última revisão: 5 de janeiro de 2006 - Revisão: 4.0
A informação contida neste artigo aplica-se a:
  • Microsoft Foundation Class Library 4.2 nas seguintes plataformas
    • Microsoft Visual C++ 1.0 Professional Edition
    • Microsoft Visual C++ 1.5 Professional Edition
    • Microsoft Visual C++ 1.51
    • Microsoft Visual C++ 1.52 Professional Edition
    • Microsoft Visual C++ 1.0 Professional Edition
    • Microsoft Visual C++ 2.0 Professional Edition
    • Microsoft Visual C++ 2.1
    • Microsoft Visual C++ 5.0 Standard Edition
    • Microsoft Visual C++ 6.0 Service Pack 5
    • Microsoft Visual C++ .NET 2003 Standard Edition
    • Microsoft Visual C++ .NET 2002 Standard Edition
    • Microsoft Visual C++ 2005 Express Edition
Palavras-chave: 
kbmt kbdocview kbhowto kbmdi kbuidesign KB98598 KbMtpt
Tradução automática
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 revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 98598

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com