Partilhar via


Como: Criar o controle de usuário e o Host em uma caixa de diálogo

As etapas deste tópico presumem que você esteja criando um diálogo baseado em (CDialog Class) o projeto do Microsoft Foundation Classes (MFC), mas você também pode adicionar suporte para um controle Windows Forms para uma caixa de diálogo existentes de MFC.

Para criar o.Controle NET user

  1. Criar um projeto do Visual C# Windows Forms Control Library chamado WindowsFormsControlLibrary1.

    Sobre o arquivo menu, clique em novo e, em seguida, clique em projeto. No C# Visual pasta, selecione Windows Forms Control Library.

    Aceitar a WindowsFormsControlLibrary1 nome do projeto clicando em OK.

    Por padrão, o nome da.NET controle será UserControl1.

  2. Adicionar controles filho a UserControl1.

    No caixa de ferramentas, abra o All Windows Forms lista. Arraste um botão o controle para o UserControl1 superfície de design.

    Também adicionar um caixa de texto controle.

  3. Em Solution Explorer, clique duas vezes em UserControl1.Designer.cs para abri-lo para edição. Alterar as declarações de TextBox e o botão de private para public.

  4. Build the project.

    Sobre o Build menu, clique em Build Solution.

Para criar o aplicativo host do MFC

  1. Crie um projeto de aplicativo MFC.

    Sobre o arquivo menu, clique em novo e, em seguida, clique em projeto. No Visual C++ pasta, selecione Aplicativo MFC.

    No nome , digite MFC01. Alterar a configuração de solução para Adicionar a solução. Click OK.

    No mfc Application Wizard, tipo de aplicativo, selecione Dialog based. Aceite o restante das configurações padrão e clique em Concluir. Isso cria um aplicativo MFC que possui uma caixa de diálogo do MFC.

  2. Adicione um controle placeholder para a caixa de diálogo do MFC.

    Sobre o Exibir menu, clique em Exibição de recurso. Em Exibição de recurso, expandir o caixa de diálogo pasta e clique duas vezes em IDD_MFC01_DIALOG. O recurso de caixa de diálogo aparece no Editor de recursos.

    No Toolbox, abra o O Editor de diálogo lista. Arraste um Texto estático o controle para o recurso de caixa de diálogo. O Texto estático controle servirá como um espaço reservado para o.NET Windows Forms de controle. Para redimensioná-la para aproximadamente do tamanho de um controle Windows Forms.

    No Propriedades janela, alterar o ID da Texto estático o controle para IDC_CTRL1 e alterar o TabStop propriedade para True.

  3. Configure o projeto para suporte a Common Language Runtime (CLR).

    Em Solution Explorer, o botão direito do mouse no nó do projeto MFC01 e, em seguida, clique em Propriedades.

    No Property Pages caixa de diálogo, em Propriedades de configuração, selecione Geral. No Padrões de projeto seção, defina suporte a Common Language Runtime para suporte de Runtime de linguagem comum (/ clr).

    Em Propriedades de configuração, expanda C/C++ e selecione o Geral nó. Definir formato de informações de depuração para banco de dados do programa (/Zi).

    Selecione o A geração de código nó. Definir Ativar mínimo reconstruir para não (/ Gm-). Também definir Básica Runtime verifica para padrão.

    Clique em OK para aplicar as alterações.

  4. Adicionar uma referência para o.Controle de rede.

    Em Solution Explorer, o botão direito do mouse no nó do projeto MFC01 e, em seguida, clique em referências. No Página de propriedades, clique em Adicionar nova referência de, selecione WindowsFormsControlLibrary1 (sob o projetos guia) e clique em OK. Isso adiciona uma referência na forma de um /FU opção de compilador para que o programa será compilado. Além disso, ele também coloca uma cópia do WindowsFormsControlLibrary1.dll na pasta do projeto \MFC01\ para que o programa será executado.

  5. Em stdafx. h, encontre esta linha:

    #endif // _AFX_NO_AFXCMN_SUPPORT 
    

    Acima dela, adicione estas linhas:

    #include <afxwinforms.h>   // MFC Windows Forms support
    
  6. Adicione código para criar o controle gerenciado.

    Primeiro, declare o controle gerenciado. Na MFC01Dlg.h, vá para a declaração da classe de diálogo e adicionar um membro de dados para o controle de usuário no escopo protegido, da seguinte maneira.

    class CMFC01Dlg : public CDialog
    {
       // ...
       // Data member for the .NET User Control:
       CWinFormsControl<WindowsFormsControlLibrary1::UserControl1> m_ctrl1;
    

    Em seguida, forneça uma implementação para o controle gerenciado. Em MFC01Dlg.cpp, na caixa de diálogo Substituir de CMFC01Dlg::DoDataExchange que foi gerado pelo Assistente de aplicativo MFC (não CAboutDlg::DoDataExchange, que está no mesmo arquivo), adicione o seguinte código para criar o controle gerenciado e associá-lo o estático de espaço reservado IDC_CTRL1.

    void CMFC01Dlg::DoDataExchange(CDataExchange* pDX)
    {
       CDialog::DoDataExchange(pDX);
       DDX_ManagedControl(pDX, IDC_CTRL1, m_ctrl1);
    }
    
  7. Build and run the project.

    Em Solution Explorer, com o botão direito MFC01 e, em seguida, clique em Set as StartUp Project.

    Sobre o Build menu, clique em Build Solution.

    Sobre o Debug menu, clique em Start without debugging. A caixa de diálogo MFC deve exibir o controle Windows Forms.

Consulte também

Outros recursos

Hospedando um controle de usuário de Windows Form em uma caixa de diálogo do MFC