Dela via


Programmeringsskillnader för Windows Forms/MFC

I avsnitten i Använda en Användarkontroll för Windows-formulär i MFC beskrivs MFC-stödet för Windows Forms. Om du inte är bekant med .NET Framework- eller MFC-programmering innehåller det här avsnittet bakgrundsinformation om programmeringsskillnader mellan de två.

Windows Forms är till för att skapa Microsoft Windows-program i .NET Framework. Det här ramverket ger en modern, objektorienterad, utökningsbar uppsättning klasser som gör att du kan utveckla omfattande Windows-baserade program. Med Windows Forms kan du skapa ett omfattande klientprogram som kan komma åt en mängd olika datakällor och tillhandahålla funktioner för datavisning och dataredigering med hjälp av Windows Forms-kontroller.

Men om du är van vid MFC kan du vara van vid att skapa vissa typer av program som ännu inte uttryckligen stöds i Windows Forms. Windows Forms-program motsvarar MFC-dialogprogram. De tillhandahåller dock inte infrastrukturen för att direkt stödja andra MFC-programtyper som OLE-dokumentserver/container, ActiveX-dokument, dokument-/vystöd för enkeldokumentgränssnitt (SDI), multidokumentgränssnitt (MDI) och flera gränssnitt på den översta nivån (MTI). Du kan skriva din egen logik för att skapa dessa program.

Mer information om Windows Forms-program finns i Introduktion till Windows-formulär.

Följande funktioner för MFC-vy eller dokument- och kommandoroutning har inga motsvarigheter i Windows Forms:

  • Shell-integrering

    MFC hanterar DDE-kommandon (Dynamic Data Exchange) och kommandoradsargument som används i gränssnittet när du högerklickar på ett dokument och väljer verb som Öppna, Redigera eller Skriv ut. Windows Forms har ingen gränssnittsintegrering och svarar inte på gränssnittsverb.

  • Dokumentmallar

    I MFC associerar dokumentmallar en vy som finns i ett ramfönster (i MDI-, SDI- eller MTI-läge) med det dokument som du öppnade. Windows Forms har ingen motsvarighet till dokumentmallar.

  • Dokument

    MFC registrerar dokumentfiltyper och bearbetar dokumenttypen när ett dokument öppnas från gränssnittet. Windows Forms har inget dokumentstöd.

  • Dokumentstatus

    MFC hanterar ändrade tillstånd för dokumentet. När du stänger programmet, stänger den senaste vyn som innehåller programmet eller avslutar från Windows uppmanar MFC dig därför att spara dokumentet. Windows Forms har inget motsvarande stöd.

  • Kommandon

    MFC har begreppet kommandon. Menyraden, verktygsfältet och snabbmenyn kan alla anropa samma kommando, till exempel Klipp ut och Kopiera. I Windows Forms är kommandon nära bundna händelser från ett visst användargränssnittselement (till exempel ett menyalternativ). Därför måste du ansluta alla kommandohändelser explicit. Du kan också hantera flera händelser med en enda hanterare i Windows Forms. Mer information finns i Ansluta flera händelser till en enskild händelsehanterare i Windows-formulär.

  • Kommandoroutning

    Med MFC-kommandoroutning kan den aktiva vyn eller dokumentet bearbeta kommandon. Eftersom samma kommando ofta har olika betydelser för olika vyer (till exempel fungerar Kopiera annorlunda i textredigeringsvyn än i en grafikredigerare) måste kommandona hanteras av den aktiva vyn. Eftersom Windows Forms-menyer och verktygsfält inte har någon inbyggd förståelse för den aktiva vyn kan du inte ha en annan hanterare för varje vytyp för dina MenuItem.Click-händelser utan att skriva ytterligare intern kod.

  • Mekanism för kommandouppdatering

    MFC har en mekanism för kommandouppdatering. Därför ansvarar den aktiva vyn eller dokumentet för UI-elementens tillstånd (till exempel att aktivera eller inaktivera ett menyalternativ eller en knapp för verktyg och kontrollerade tillstånd). Windows Forms har ingen motsvarighet till en kommandouppdateringsmekanism.

Se även

Använda en Användarkontroll för Windows-formulär i MFC