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.
Du kan skapa fönster direkt från CWndeller härleda nya fönsterklasser från CWnd. Det är så du vanligtvis skapar egna anpassade fönster. De flesta fönster som används i ett ramverksprogram skapas dock i stället från någon av de CWnd-derived frame-window-klasser som tillhandahålls av MFC.
Ramfönsterklasser
CFrameWnd
Används för SDI-ramfönster som ramar in ett enda dokument och dess vy. Ramfönstret är både huvudramfönstret för programmet och ramfönstret för det aktuella dokumentet.
CMDIFrameWnd
Används som huvudramfönster för MDI-program. Huvudramsfönstret är en container för alla MDI-dokumentfönster och delar menyraden med dem. Ett MDI-ramfönster är ett fönster på den översta nivån som visas på skrivbordet.
CMDIChildWnd
Används för enskilda dokument som öppnas i ett MDI-huvudramfönster. Varje dokument och dess vy ramas in av ett underordnat MDI-ramfönster som ingår i MDI-huvudramfönstret. Ett underordnat MDI-fönster ser ungefär ut som ett typiskt ramfönster men finns inuti ett MDI-ramfönster i stället för att finnas på skrivbordet. MDI-underfönstret saknar dock en egen menyrad. Den måste dela menyraden i MDI-ramfönstret som innehåller det.
Mer information finns i Fönsterramar.
Andra fönsterklasser som härletts från CWnd
Förutom ramfönster härleds flera andra större kategorier av fönster från CWnd:
Vyer:
Vyer skapas med klassenCWnd-derivedCView(eller någon av dess härledda klasser). En vy bifogas ett dokument och fungerar som mellanhand mellan dokumentet och användaren. En vy är ett underordnat fönster (inte ett MDI-underordnat) som vanligtvis fyller klientområdet i ett SDI-ramfönster eller ett underordnat MDI-ramfönster (eller den delen av klientområdet som inte omfattas av ett verktygsfält eller ett statusfält).Dialogrutor:
Dialogrutor skapas med klassen som är härledd frånCWndCDialog.Formulär:
Formulärvyer baserade på dialogmallsresurser, till exempel dialogrutor, skapas med hjälp av klassernaCFormView,CRecordViewellerCDaoRecordView.Kontroller:
Kontroller som knappar, listrutor och kombinationsrutor skapas med hjälp av andra klasser som härleds frånCWnd. Se Kontrollämnen.Kontrollpaneler:
Underfönster som innehåller kontroller. Exempel innefattar verktygsfält och statusfält. Se Kontrollfält.
Hierarki för fönsterklass
Se MFC-hierarkidiagrammet i MFC-referensen. Vyer förklaras i dokument-/vyarkitektur. Dialogrutor förklaras i dialogrutor.
Skapa egna Special-Purpose-fönsterklasser
Förutom de fönsterklasser som tillhandahålls av klassbiblioteket kan du behöva specifika barnfönster. Skapa ett sådant fönster genom att skapa en egen klass som ärvts från CWnd och gör det till ett underfönster i en ram eller vy. Tänk på att ramverket hanterar omfattningen av klientområdet i ett dokumentramfönster. Större delen av klientområdet hanteras av en vy, men andra fönster, till exempel kontrollstaplar eller egna anpassade fönster, kan dela utrymmet med vyn. Du kan behöva interagera med mekanismerna i klasser CView och CControlBar för att placera underordnade fönster i ett ramfönsters klientområde.
När du skapar fönster diskuteras skapandet av fönsterobjekt och de fönster som de hanterar.