Sdílet prostřednictvím


Gewusst wie: Erstellen des Benutzersteuerelements und des Hosts in einem Dialogfeld

Aktualisiert: November 2007

Bei der Prozedur in diesem Thema wird davon ausgegangen, dass Sie ein neues dialogbasiertes MFC-Projekt erstellen (CDialog Class). Sie können jedoch auch einem vorhandenen MFC-Dialog Unterstützung für ein Windows Form-Steuerelement hinzufügen.

So erstellen Sie das .NET-Benutzersteuerelement

  1. Erstellen Sie ein neues Visual C# Windows-Steuerelementbibliotheksprojekt mit dem Namen WindowsControlLibrary1.

    Wählen Sie im Menü Datei die Option Neu und anschließend Projekt aus. Wählen Sie im Ordner Visual C# das Symbol Windows-Steuerelementbibliothek aus.

    Übernehmen Sie den Standardprojektnamen WindowsControlLibrary1, indem Sie auf OK klicken.

    Der Standardname des .NET-Steuerelements ist UserControl1.

  2. Fügen Sie UserControl1 untergeordnete Steuerelemente hinzu.

    Öffnen Sie in der Toolbox die Liste Alle Windows Forms. Ziehen Sie ein Button-Steuerelement auf die Entwurfsoberfläche von UserControl1.

    Fügen Sie auch ein TextBox-Steuerelement hinzu.

  3. Ändern Sie in der Datei UserControl1.Designer.cs die Deklarationen des TextBox-Steuerelements und des Button-Steuerelements von privat in öffentlich.

  4. Erstellen Sie das Projekt.

    Klicken Sie im Menü Erstellen auf Projektmappe erstellen.

    Sie sollten den vollständigen Pfad der generierten DLL mitsamt dem Dateinamen im Buildprotokoll notieren, da Sie diese Informationen in der MFC-Anwendung eingeben müssen.

So erstellen Sie die MFC-Hostanwendung

  1. Erstellen Sie ein neues MFC-Anwendungsprojekt.

    Wählen Sie im Menü Datei die Option Neu und anschließend Projekt aus. Wählen Sie im Ordner Visual C++ das Symbol MFC-Anwendung aus.

    Geben Sie im Feld Name den Namen MFC01 ein. Ändern Sie die Projektmappeneinstellung in Hinzufügen. Klicken Sie auf OK. Der MFC-Anwendungs-Assistent wird angezeigt.

    Wählen Sie im MFC-Anwendungs-Assistenten den Anwendungstyp. Wählen Sie Auf Dialogfeldern basierend aus. Übernehmen Sie die restlichen Standardeinstellungen, und klicken Sie auf Fertig stellen. Dadurch wird eine MFC-Anwendung mit einem MFC-Dialog erstellt.

  2. Fügen Sie dem MFC-Dialogfeld ein Platzhaltersteuerelement hinzu.

    Klicken Sie auf die Registerkarte Ressourcenansicht. Doppelklicken Sie in der Ressourcenansicht auf IDD_MFC01_DIALOG. Die Dialogressource wird im Ressourcen-Editor angezeigt.

    Öffnen Sie in der Toolbox die Liste Dialog-Editor. Ziehen Sie ein Steuerelement für statischen Text auf die Dialogressource. Das Steuerelement für statischen Text dient als Platzhalter für das .NET Windows Forms-Steuerelement. Passen Sie die Größe des Steuerelements an, sodass sie mit der Größe des Windows Forms-Steuerelements übereinstimmt.

    Ändern Sie im Eigenschaftenfenster die ID des Steuerelements für statischen Text auf IDC_CTRL1, und ändern Sie den Wert der TabStop-Eigenschaft auf True.

  3. Konfigurieren Sie das Projekt.

    Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf den Projektknoten MFC01, und wählen Sie dann im Kontextmenü Eigenschaften aus. Das Dialogfeld Eigenschaftenseiten wird angezeigt.

    Wählen Sie im Dialogfeld Eigenschaftenseiten in der Strukturansicht Konfigurationseigenschaften die Option Allgemein aus, und legen Sie anschließend im Abschnitt Projektstandards die Common Language Runtime-Unterstützung auf Common Language Runtime-Unterstützung (/clr) fest. Klicken Sie auf OK.

  4. Fügen Sie dem .NET-Steuerelement einen Verweis hinzu.

    Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf den Projektknoten MFC01, und wählen Sie Verweise aus. Klicken Sie in der Eigenschaftenseite auf Neuen Verweis hinzufügen, wählen Sie WindowsControlLibrary1 (unter der Registerkarte Projekte) aus, und klicken Sie auf OK. Dadurch wird ein Verweis in Form einer /FU-Compileroption hinzugefügt, damit das Programm kompiliert wird; außerdem wird WindowsControlLibrary1.dll in das Projektverzeichnis MFC01 kopiert, damit das Programm ausgeführt wird.

  5. Suchen Sie in stdafx.h folgende Zeile:

    #endif // _AFX_NO_AFXCMN_SUPPORT 
    

    Fügen Sie davor folgende Zeilen ein:

    #include <afxwinforms.h>   // MFC Windows Forms support
    
  6. Fügen Sie Code hinzu, um das verwaltete Steuerelement zu erstellen.

    Deklarieren Sie zunächst das verwaltete Steuerelement. Navigieren Sie in MFC01Dlg.h zur Deklaration der Dialogklasse, und fügen Sie im geschützten Bereich einen Datenmember für das Benutzersteuerelement ein, wie im Folgenden gezeigt:

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

    Fügen Sie als Nächstes die Implementierung für das verwaltete Steuerelement ein. Fügen Sie in MFC01Dlg.cpp in dem vom MFC-Anwendungs-Assistenten erstellten Bereich, in dem der Dialog überschrieben wird, unter CMFC01Dlg::DoDataExchange (nicht unter CAboutDlg::DoDataExchange, das auch in dieser Datei enthalten ist) den folgenden Code hinzu, um das verwaltete Steuerelement zu erstellen und mit dem statischen Platzhalter IDC_CTRL1 zu verknüpfen:

    void CMFC01Dlg::DoDataExchange(CDataExchange* pDX)
    {
       CDialog::DoDataExchange(pDX);
       DDX_ManagedControl(pDX, IDC_CTRL1, m_ctrl1);
    }
    
  7. Erstellen Sie das Projekt, und führen Sie es aus.

    Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf MFC01, und wählen Sie Als Startprojekt festlegen.

    Klicken Sie im Menü Erstellen auf Projektmappe erstellen.

    Klicken Sie im Menü Debuggen auf Starten ohne Debuggen. Im MFC-Dialogfeld wird nun das Windows Form-Steuerelement angezeigt.

Siehe auch

Weitere Ressourcen

Hosten eines Windows Form-Benutzersteuerelements in einem MFC-Dialogfeld