Not
Åtkomst till denna sida kräver auktorisation. Du kan prova att logga in eller byta katalog.
Åtkomst till denna sida kräver auktorisation. Du kan prova att byta katalog.
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.