Gewusst wie: Erstellen des Benutzersteuerelements und Hosten der MDI-Ansicht
Aktualisiert: November 2007
In der folgenden Prozedur wird das Erstellen eines .NET Framework-Benutzersteuerelements und das Erstellen des Steuerelements in einer Steuerelementklassenbibliothek (speziell in einem Projekt einer Windows-Steuerelementbibliothek) sowie das Kompilieren des Projekts in eine Assembly veranschaulicht. Anschließend verwenden Sie das Steuerelement aus einer MFC-Anwendung heraus, die von CView Class und CWinFormsView Class abgeleitete Klassen verwendet.
Informationen, wie Sie ein Windows Forms-Benutzersteuerelement und eine Steuerelementklassenbibliothek erstellen, finden Sie unter Gewusst wie: Erstellen von Benutzersteuerelementen.
Hinweis: |
---|
In einigen Fällen verhalten sich WinForms-Steuerelemente, z. B. ein Datenblattsteuerelement eines Drittanbieters, nicht zuverlässig, wenn sie in einer MFC-Anwendung gehostet werden. Um dies zu umgehen, wird empfohlen, ein Windows Forms-Benutzersteuerelement in der MFC-Anwendung und das Datenblattsteuerelement des Drittanbieters innerhalb des Benutzersteuerelements zu platzieren. |
Voraussetzung für diese Prozedur ist, dass Sie ein Windows Forms-Steuerelementbibliothek-Projekt mit dem Namen WindowsControlLibrary1 wie in der Vorgehensweise unter Gewusst wie: Erstellen des Benutzersteuerelements und des Hosts in einem Dialogfeld erstellt haben.
So erstellen Sie die MFC-Hostanwendung
Erstellen Sie ein neues MFC-Anwendungsprojekt.
Wählen Sie im Menü Datei die Option New, und klicken Sie dann auf Projekt. Wählen Sie im Ordner Visual C++ die Option MFC-Anwendung aus.
Geben Sie im Feld Name die Zeichenfolge MFC02 ein, und ändern Sie die Projektmappeneinstellung in Hinzufügen.Klicken Sie auf OK.
Übernehmen Sie im MFC-Anwendungs-Assistent alle Standardeinstellungen, und klicken Sie dann auf Fertig stellen. Dies erstellt eine MFC-Anwendung mit einem MDI (Multiple Document Interface).
Konfigurieren des Projekts.
Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf den Projektknoten MFC02, und wählen Sie dann im Kontextmenü Eigenschaften aus. Das Dialogfeld Eigenschaftenseiten wird angezeigt.
Wählen Sie im Dialogfeld Eigenschaftenseiten in der Baumstruktur 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.
Fügen Sie dem .NET-Steuerelement einen Verweis hinzu.
Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf den Projektknoten MFC02, 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. Dies fügt einen Verweis in Form einer /FU-Compileroption hinzu, damit das Programm kompiliert wird; außerdem wird WindowsControlLibrary1.dll in das Projektverzeichnis MFC02 kopiert, damit das Programm ausgeführt werden kann.
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
Ändern Sie die Ansichtsklasse so, dass sie von CWinFormsView erbt.
Ersetzen Sie in MFC02View.h CView durch CWinFormsView, sodass der Code folgendermaßen aussieht:
class CMFC02View : public CWinFormsView { };
Wenn Sie der MDI-Anwendung weitere Ansichten hinzufügen möchten, müssen Sie für jede einzelne zu erstellende Ansicht CWinApp::AddDocTemplate aufrufen.
Ändern Sie in der Datei MFC02View.cpp im IMPLEMENT_DYNCREATE-Makro und in der Meldungszuordnung CView in CWinFormsView um, und ersetzen Sie den vorhandenen leeren Konstruktor durch den folgenden:
IMPLEMENT_DYNCREATE(CMFC02View, CWinFormsView) CMFC02View::CMFC02View(): CWinFormsView(WindowsControlLibrary1::UserControl1::typeid) { } BEGIN_MESSAGE_MAP(CMFC02View, CWinFormsView) //leave existing body as is END_MESSAGE_MAP()
Erstellen Sie das Projekt, und führen Sie es aus.
Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf MFC02, und wählen Sie Als Startprojekt festlegen.
Klicken Sie im Menü Erstellen auf Projektmappe erstellen.
Klicken Sie im Menü Debuggen auf Starten ohne Debuggen.
Siehe auch
Weitere Ressourcen
Hosten eines Windows Form-Benutzersteuerelements als MFC-Ansicht