Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Följande steg visar hur du skapar en .NET Framework-användarkontroll, skapar användarkontrollen i ett kontrollklassbibliotek (specifikt ett Windows-kontrollbiblioteksprojekt) och sedan kompilerar projektet till en sammansättning. Kontrollen kan sedan användas från ett MFC-program som använder klasser som härleds från CView-klassen och CWinFormsView-klassen.
Information om hur du skapar en Windows Forms-användarkontroll och skapar ett kontrollklassbibliotek finns i How to: Author User Controls (Så här skapar du användarkontroller).
Anmärkning
I vissa fall kanske Windows Forms-kontroller, till exempel en rutnätskontroll från tredje part, inte fungerar tillförlitligt när de finns i ett MFC-program. En rekommenderad lösning är att placera en Windows Forms-användarkontroll i MFC-programmet och placera rutnätskontrollen från tredje part i användarkontrollen.
Den här proceduren förutsätter att du har skapat ett Windows Forms Controls Library-projekt med namnet WindowsFormsControlLibrary1 enligt proceduren i How to: Create the User Control and Host in a Dialog Box (Skapa användarkontroll och värd i en dialogruta).
Att skapa MFC-värdprogrammet
Skapa ett MFC-programprojekt.
På Arkiv-menyn väljer du Nytt och klickar sedan på Projekt. I mappen Visual C++ väljer du MFC-program.
I rutan Namn anger du
MFC02och ändrar inställningen Lösning till Lägg till i Lösning. Klicka på OK.I MFC-programguiden godkänner du alla standardvärden och klickar sedan på Slutför. Detta skapar ett MFC-program med ett gränssnitt för flera dokument.
Konfigurera projektet för STÖD för Common Language Runtime (CLR).
Högerklicka på projektnoden i
MFC01och välj Egenskaper på snabbmenyn. Dialogrutan Egenskapssidor visas.Under Konfigurationsegenskaper väljer du Allmänt. I avsnittet Projektstandarder anger du Stöd för Common Language Runtime till Common Language Runtime Support (/clr).
Under Konfigurationsegenskaper expanderar du C/C++ och klickar på noden Allmänt . Ange Felsökningsinformationsformat tillProgramdatabas (/Zi).
Klicka på noden Kodgenerering . Ställ in Aktivera minimal återskapa till Nej (/Gm-). Ange även Standardkörningskontroller till Standard.
Klicka på OK för att tillämpa ändringarna.
Lägg till följande rad i pch.h (stdafx.h i Visual Studio 2017 och tidigare):
#using <System.Windows.Forms.dll>Lägg till en referens till .NET-kontrollen.
Högerklicka på projektnoden i
MFC02och välj Lägg tillreferenser. På egenskapssidan klickar du på Lägg till ny referens, väljer WindowsFormsControlLibrary1 (under fliken Projekt) och klickar på OK. Detta lägger till en referens i form av ett /FU-kompilatoralternativ så att programmet kompileras. den kopierar också WindowsFormsControlLibrary1.dll till projektkatalogenMFC02så att programmet körs.I stdafx.h hittar du den här raden:
#endif // _AFX_NO_AFXCMN_SUPPORTLägg till följande rader ovanför den:
#include <afxwinforms.h> // MFC Windows Forms supportÄndra vyklassen så att den ärver från CWinFormsView.
I MFC02View.h ersätter du CView med CWinFormsView så att koden visas på följande sätt:
class CMFC02View : public CWinFormsView { };Om du vill lägga till ytterligare vyer i ditt MDI-program måste du anropa CWinApp::AddDocTemplate för varje vy du skapar.
Ändra filen MFC02View.cpp för att ändra CView till CWinFormsView i IMPLEMENT_DYNCREATE makro- och meddelandekartan och ersätt den befintliga tomma konstruktorn med konstruktorn som visas nedan:
IMPLEMENT_DYNCREATE(CMFC02View, CWinFormsView) CMFC02View::CMFC02View(): CWinFormsView(WindowsFormsControlLibrary1::UserControl1::typeid) { } BEGIN_MESSAGE_MAP(CMFC02View, CWinFormsView) //leave existing body as is END_MESSAGE_MAP()Skapa och kör projektet.
Högerklicka på MFC02 i Solution Explorer och välj Ange som startprojekt.
Klicka på Skapa lösning på Skapa-menyn.
På felsökningsmenyn klickar du på Starta utan att felsöka.
Se även
Vara värd för en Windows Forms-användarkontroll som en MFC-vy