Dela via


Härledda fönsterklasser

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 klassen CWnd-derived CView (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ån CWndCDialog.

  • Formulär:
    Formulärvyer baserade på dialogmallsresurser, till exempel dialogrutor, skapas med hjälp av klasserna CFormView, CRecordVieweller CDaoRecordView.

  • Kontroller:
    Kontroller som knappar, listrutor och kombinationsrutor skapas med hjälp av andra klasser som härleds från CWnd. 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.

Se även

Fönsterobjekt