Not
Å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.
Stegen i den här artikeln förutsätter att du skapar ett dialogbaserat (CDialog Class) Microsoft Foundation-klassprojekt (MFC), men du kan också lägga till stöd för en Windows Forms-kontroll i en befintlig MFC-dialogruta.
Så här skapar du .NET-användarkontrollen
Skapa ett Visual C# Windows Forms Control Library-projekt med namnet
WindowsFormsControlLibrary1.Klicka på Nytt på Arkiv-menyn och klicka sedan på Projekt. I mappen Visual C# väljer du Kontrollbibliotek för Windows-formulär.
WindowsFormsControlLibrary1Acceptera projektnamnet genom att klicka på OK.Som standard är
UserControl1namnet på .NET-kontrollen .Lägg till underordnade kontroller i
UserControl1.Öppna listan Alla Windows-formulär i verktygslådan. Dra en knappkontroll till
UserControl1designytan.Lägg också till en TextBox-kontroll .
Dubbelklicka på UserControl1.Designer.cs i Solution Explorer för att öppna den för redigering. Ändra textrutans och knappens deklarationer från
privatetillpublic.Skapa projektet.
Klicka på Skapa lösning på Skapa-menyn.
Att skapa MFC-värdprogrammet
Skapa ett MFC-programprojekt.
Klicka på Nytt på Arkiv-menyn och klicka sedan på Projekt. I mappen Visual C++ väljer du MFC-program.
I rutan Namn skriver du
MFC01. Ändra lösningsinställningen till Lägg till i lösning. Klicka på OK.I guiden MFC-program väljer du Dialogbaserad för Programtyp. Acceptera de återstående standardinställningarna och klicka på Slutför. Detta skapar ett MFC-program som har en MFC-dialogruta.
Lägg till en platshållarkontroll i dialogrutan MFC.
På menyn Visa klickar du på Resursvy. I Resursvyn expanderar du mappen Dialog och dubbelklickar på
IDD_MFC01_DIALOG. Dialogresursen visas i Resursredigeraren.Öppna listan Dialogredigerare i verktygslådan. Dra en statisk textkontroll till dialogresursen. Kontrollen Statisk text fungerar som platshållare för .NET Windows Forms-kontrollen. Ändra storlek på den till ungefär storleken på Windows Forms-kontrollen.
I fönstret Egenskaper ändrar du ID för kontrollen Statisk text till
IDC_CTRL1och ändrar egenskapen TabStop till Sant.Konfigurera projektet för STÖD för Common Language Runtime (CLR).
Högerklicka på MFC01-projektnoden i Solution Explorer och klicka sedan på Egenskaper.
I dialogrutan Egenskapssidor går du till Konfigurationsegenskaper och väljer Allmänt. I avsnittet Project Defaults anger du Stöd för Common Language Runtime till Common Language Runtime Support (/clr).
Under Konfigurationsegenskaper expanderar du C/C++ och väljer noden Allmänt . Ange Felsökningsinformationsformat tillProgramdatabas (/Zi).
Välj noden Kodgenerering . Ange Aktivera minimal omkompilering till Nej (/Gm-). Ställ även in Standardkörningskontroller till Standard.
Klicka på OK för att tillämpa ändringarna.
Lägg till en referens till .NET-kontrollen.
Högerklicka på MFC01-projektnoden i Solution Explorer och klicka sedan på 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 placerar också en kopia av WindowsFormsControlLibrary1.dll i projektmappen \MFC01\ så 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 supportLägg till kod för att skapa den hanterade kontrollen.
Deklarera först den hanterade kontrollen. I MFC01Dlg.h går du till deklarationen för dialogklassen och lägger till en datamedlem för användarkontrollen i Skyddat omfång enligt följande.
class CMFC01Dlg : public CDialog { // ... // Data member for the .NET User Control: CWinFormsControl<WindowsFormsControlLibrary1::UserControl1> m_ctrl1;Ange sedan en implementering för den hanterade kontrollen. I MFC01Dlg.cpp lägger du till följande kod i dialogrutans åsidosättning av
CMFC01Dlg::DoDataExchangesom genererades av MFC-programguiden (inteCAboutDlg::DoDataExchange, som finns i samma fil) för att skapa den hanterade kontrollen och associera den med den statiska platshållaren IDC_CTRL1.void CMFC01Dlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); DDX_ManagedControl(pDX, IDC_CTRL1, m_ctrl1); }Skapa och kör projektet.
Högerklicka på MFC01 i Solution Explorer och klicka sedan på Ange som startprojekt.
Klicka på Skapa lösning på Skapa-menyn.
På felsökningsmenyn klickar du på Starta utan att felsöka. MFC-dialogrutan bör visa Windows Forms-kontrollen.