Compartilhar via


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

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

Para criar o.NET user control

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

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

    Aceitar o WindowsFormsControlLibrary1 nome do projeto clicando em OK.

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

  2. Adicionar controles filho a UserControl1.

    No Toolbox, abra o All Windows Forms lista.Arraste um botão o controle para o UserControl1 a 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 botão de private para public.

  4. Crie o projeto.

    No menu Build, clique em Build Solution.

Para criar o aplicativo host do MFC

  1. Crie um projeto de aplicativo do MFC.

    Sobre o arquivo menu, clique em novo e 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 de.Clique em OK.

    No MFC Application Wizard, tipo de aplicativo, selecione caixa de diálogo com base em.Aceite as configurações padrão restantes e clique em Concluir.Isso cria um aplicativo do MFC que tem uma caixa de diálogo do MFC.

  2. Adicione um controle de espaço reservado para a caixa de diálogo do MFC.

    No modo menu, clique em Exibição de recurso.Em Exibição de recurso, expanda o diálogo pasta e clique duas vezes em IDD_MFC01_DIALOG.O recurso de caixa de diálogo aparece no Resource Editor.

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

    No Propriedades janela, alterar o ID do Texto estático controle IDC_CTRL1 e alterar o TabStop propriedade 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 clique em Propriedades.

    No Páginas de propriedades caixa de diálogo, em Propriedades de configuração de, selecione Geral.No Padrões de projeto seção, definir suporte a Common Language Runtime para Common Language Runtime suporte (/ clr).

    Em Propriedades de configuração de, 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 Geração de código nó.Definir Ativar mínima recompilar para não (/ Gm-).Também definir Basic Runtime verifica para padrão.

    Clique em OK para aplicar as alterações.

  4. Adicionar uma referência para o.NET controle.

    Em Solution Explorer, o botão direito do mouse no nó do projeto MFC01 e clique referências.No Página de propriedade, clique Adicionar novo referência, 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.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, localize esta linha:

    #endif // _AFX_NO_AFXCMN_SUPPORT 
    

    Acima, adicione estas linhas:

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

    Primeiro, declare o controle gerenciado.Em 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, como segue.

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

    Em seguida, fornece 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 do MFC (não CAboutDlg::DoDataExchange, que está no mesmo arquivo), adicione o seguinte código para criar o controle gerenciado e associá-la ao proprietário do local estática IDC_CTRL1.

    void CMFC01Dlg::DoDataExchange(CDataExchange* pDX)
    {
       CDialog::DoDataExchange(pDX);
       DDX_ManagedControl(pDX, IDC_CTRL1, m_ctrl1);
    }
    
  7. Criar e executar o projeto.

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

    No menu Build, clique em Build Solution.

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

Consulte também

Outros recursos

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