Condividi tramite


Procedura: creare il controllo utente e inserirlo in una finestra di dialogo

I passaggi descritti in questo articolo presuppongono che si stia creando un progetto Microsoft Foundation Class (MFC) basato su dialoghi, ma è anche possibile aggiungere supporto per un controllo Windows Form a una finestra di dialogo MFC esistente.

Per creare il controllo utente .NET

  1. Creare un progetto Visual C# Windows Form Control Library denominato WindowsFormsControlLibrary1.

    Nel menu File fare clic su Nuovo e quindi su Progetto. Nella cartella Visual C# selezionare Windows Form Libreria di controlli.

    Accettare il nome del WindowsFormsControlLibrary1 progetto facendo clic su OK.

    Per impostazione predefinita, il nome del controllo .NET sarà UserControl1.

  2. Aggiungere controlli figlio a UserControl1.

    Nella casella degli strumenti aprire l'elenco Tutti Windows Form. Trascinare un controllo Pulsante nell'area di UserControl1 progettazione.

    Aggiungere anche un controllo TextBox .

  3. In Esplora soluzioni fare doppio clic su UserControl1.Designer.cs per aprirlo per la modifica. Modificare le dichiarazioni di TextBox e Button da private a public.

  4. Compilare il progetto.

    Nel menu Compila scegliere Compila soluzione.

Per creare l'applicazione host MFC

  1. Creare un progetto di applicazione MFC.

    Nel menu File fare clic su Nuovo e quindi su Progetto. Nella cartella Visual C++ selezionare Applicazione MFC.

    Nella casella Nome digitare MFC01. Modificare l'impostazione Soluzione in Aggiungi alla soluzione. Fare clic su OK.

    Nella Creazione guidata applicazione MFC, per Tipo di applicazione, selezionare Basato su finestra di dialogo. Accettare le impostazioni predefinite rimanenti e fare clic su Fine. Verrà creata un'applicazione MFC con una finestra di dialogo MFC.

  2. Aggiungere un controllo segnaposto alla finestra di dialogo MFC.

    Scegliere Visualizzazione risorse dal menu Visualizza. In Visualizzazione risorse espandere la cartella Dialog e fare doppio clic su IDD_MFC01_DIALOG. La risorsa della finestra di dialogo viene visualizzata in Editor risorse.

    Nella casella degli strumenti aprire l'elenco Editor finestre di dialogo. Trascinare un controllo Testo statico nella risorsa finestra di dialogo. Il controllo Testo statico fungerà da segnaposto per il controllo Windows Form .NET. Ridimensionarlo a circa le dimensioni del controllo Windows Form.

    Nella finestra Proprietà modificare l'IDdel controllo IDC_CTRL1 Testo statico in e impostare la proprietà TabStop su True.

  3. Configurare il progetto per il supporto CLR (Common Language Runtime).

    In Esplora soluzioni fare clic con il pulsante destro del mouse sul nodo del progetto MFC01 e quindi scegliere Proprietà.

    Nella finestra di dialogo Pagine delle proprietà, in Proprietà di configurazione selezionare Generale. Nella sezione Project Defaults (Impostazioni predefinite progetto) impostare Common Language Runtime support (/clr) su Common Language Runtime Support (/clr).In the Project Defaults section, set Common Language Runtime support to Common Language Runtime Support (/clr).

    In Proprietà di configurazione espandere C/C++ e selezionare il nodo Generale . Impostare Formato informazioni di debug su Database programma (/Zi).Set Debug Information Format to Program Database (/Zi).

    Selezionare il nodo Generazione codice. Impostare Abilita ricompilazione minima su No (/Gm-). Impostare anche Controlli di runtime di base su Impostazione predefinita.

    Fare clic su OK per applicare le modifiche.

  4. Aggiungere un riferimento al controllo .NET.

    In Esplora soluzioni fare clic con il pulsante destro del mouse sul nodo del progetto MFC01 e quindi scegliere Aggiungi riferimenti. Nella pagina delle proprietà fare clic su Aggiungi nuovo riferimento, selezionare WindowsFormsControlLibrary1 (nella scheda Progetti) e fare clic su OK. In questo modo viene aggiunto un riferimento sotto forma di opzione del compilatore /FU in modo che il programma venga compilato. Inserisce anche una copia di WindowsFormsControlLibrary1.dll nella cartella del progetto \MFC01\ in modo che il programma venga eseguito.

  5. In Stdafx.h trovare questa riga:

    #endif // _AFX_NO_AFXCMN_SUPPORT
    

    Sopra, aggiungere queste righe:

    #include <afxwinforms.h>   // MFC Windows Forms support
    
  6. Aggiungere il codice per creare il controllo gestito.

    Prima di tutto, dichiarare il controllo gestito. In MFC01Dlg.h passare alla dichiarazione della classe dialog e aggiungere un membro dati per il controllo utente nell'ambito Protected, come indicato di seguito.

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

    Specificare quindi un'implementazione per il controllo gestito. In MFC01Dlg.cpp aggiungere il codice seguente per CMFC01Dlg::DoDataExchangeCAboutDlg::DoDataExchangecreare il controllo gestito e associarlo al segnaposto statico IDC_CTRL1.

    void CMFC01Dlg::DoDataExchange(CDataExchange* pDX)
    {
       CDialog::DoDataExchange(pDX);
       DDX_ManagedControl(pDX, IDC_CTRL1, m_ctrl1);
    }
    
  7. Compilare ed eseguire il progetto.

    In Esplora soluzioni fare clic con il pulsante destro del mouse su MFC01 e quindi scegliere Imposta come progetto di avvio.

    Nel menu Compila scegliere Compila soluzione.

    Scegliere Avvia senza eseguire il debug dal menu Debug. Nella finestra di dialogo MFC verrà visualizzato il controllo Windows Form.

Vedi anche

Hosting di un controllo utente Windows Form in una finestra di dialogo MFC