Gewusst wie: Aufrufen von Ereignissen und Methoden des Windows Forms-Steuerelements
Da CWinFormsView::GetControl einen Zeiger zurückgibt System.Windows.Forms.Controlund nicht auf einen Zeiger WindowsControlLibrary1::UserControl1
, empfiehlt es sich, ein Element des Benutzersteuerelementtyps hinzuzufügen und in IView::OnInitialUpdate zu initialisieren. Jetzt können Sie Methoden und Eigenschaften mithilfe von m_ViewControl
.
In diesem Thema wird davon ausgegangen, dass Sie zuvor "How to: Create the User Control and Host" in a Dialog Box and How to: Create the User Control and Host MDI View abgeschlossen haben.
So erstellen Sie die MFC-Hostanwendung
Öffnen Sie die MFC-Anwendung, die Sie in How to: Create the User Control and Host MDI View erstellt haben.
Fügen Sie die folgende Zeile zum Abschnitt "Öffentliche Außerkraftsetzungen" der
CMFC02View
Klassendeklaration in MFC02View.h hinzu.gcroot<WindowsFormsControlLibrary1::UserControl1 ^> m_ViewControl;
Fügen Sie eine Außerkraftsetzung für OnInitialupdate hinzu.
Anzeigen des Eigenschaftenfensters (F4). Wählen Sie in der Klassenansicht (STRG+UMSCHALT+C) CMFC02View-Klasse aus. Wählen Sie im Eigenschaftenfenster das Symbol für Außerkraftsetzungen aus. Scoll down the list to OnInitialUpdate. Klicken Sie auf die Dropdownliste, und wählen Sie "Hinzufügen"> aus<. In MFC02View.cpp. Stellen Sie sicher, dass der Textkörper der OnInitialUpdate-Funktion wie folgt lautet:
CWinFormsView::OnInitialUpdate(); m_ViewControl = safe_cast<WindowsFormsControlLibrary1::UserControl1 ^>(this->GetControl()); m_ViewControl->textBox1->Text = gcnew System::String("hi");
Erstellen Sie das Projekt, und führen Sie es aus.
Klicken Sie im Menü Erstellen auf Projektmappe erstellen.
Klicken Sie im Menü "Debuggen " auf "Start" ohne Debugging.
Beachten Sie, dass das Textfeld jetzt initialisiert ist.
Siehe auch
Hosten eines Windows Forms-Benutzersteuerelements als MFC-Ansicht