Dela via


Dokument, vyer och ramverket

Kärnan i MFC-ramverket är begreppen dokument och vy. Ett dokument är ett dataobjekt som användaren interagerar med i en redigeringssession. Den skapas av kommandot Ny eller Öppnaarkiv-menyn och sparas vanligtvis i en fil. (Standard MFC-dokument, härledda från klass CDocument, skiljer sig från Aktiva dokument och OLE-sammansatta dokument.) En vy är ett fönsterobjekt genom vilket användaren interagerar med ett dokument.

Nyckelobjekten i ett program som körs är:

  • Trådobjekt

    Om ditt program skapar separata körningstrådar, till exempel för att göra beräkningar i bakgrunden, använder du klasser som härletts från CWinThread. CWinApp härleds från CWinThread och representerar huvudtråden (eller huvudprocessen) i ditt program. Du kan också använda MFC i sekundära trådar.

  • Programobjektet

    Din programklass (härledd från CWinApp) styr alla objekt ovan och anger programbeteende, till exempel initiering och rensning. Programmets enda programobjekt skapar och hanterar dokumentmallarna för alla dokumenttyper som programmet stöder.

  • Dokumentmallen eller mallarna

    En dokumentmall samordnar skapandet av dokument, vyer och ramfönster. En viss dokumentmallsklass, härledd från klassen CDocTemplate, skapar och hanterar alla öppna dokument av en typ. Program som stöder mer än en typ av dokument har flera dokumentmallar. Använd CSingleDocTemplate för SDI-program eller använd klassen CMultiDocTemplate för MDI-program.

  • Ramfönstren

    Vyer visas i "dokumentramfönster". I ett SDI-program är dokumentramsfönstret också "huvudramsfönstret" för programmet. I ett MDI-program är dokumentfönster underordnade fönster som visas i ett huvudramfönster. Din härledda huvudrutefönsterklass anger format och andra egenskaper för de ramfönster som innehåller dina vyer. Om du behöver anpassa ramfönster kan du härleda från CFrameWnd för att anpassa dokumentramfönstret för SDI-program. Använd CMDIFrameWnd för att anpassa huvudramfönstret för MDI-program. Härled även en klass från CMDIChildWnd för att anpassa varje distinkt typ av MDI-dokumentramfönster som programmet stöder.

  • Dokumentet eller dokumenten.

    Dokumentklassen (härledd från CDocument) anger programmets data.

    Om du vill ha OLE-funktioner i ditt program kan du härleda dokumentklassen från COleDocument eller någon av dess härledda klasser, beroende på vilken typ av funktionalitet du behöver.

  • Vyn eller vyerna.

    Din vyklass (härledd från CView) är användarens "fönster på data". Vyklassen styr hur användaren ser dokumentets data och interagerar med dem. I vissa fall kanske du vill att ett dokument ska ha flera vyer av data.

    Om du behöver scrolla bör du härleda från CScrollView. Om din vy har ett användargränssnitt som är lagt ut i en dialogmallsresurs, ska den härledas från CFormView. För enkla textdata använder eller härleder du från CEditView. För ett program för dataåtkomst baserat på formulär, som ett datainmatningsprogram, använd en härledning från CRecordView (för ODBC). Det finns även klasser CTreeView, CListViewoch CRichEditView.

I ett program som körs svarar dessa objekt tillsammans på användaråtgärder som binds samman av kommandon och andra meddelanden. Ett enda programobjekt hanterar en eller flera dokumentmallar. Varje dokumentmall skapar och hanterar ett eller flera dokument (beroende på om programmet är SDI eller MDI). Användaren visar och ändrar ett dokument via en vy som finns i ett ramfönster. Följande bild visar relationerna mellan dessa objekt för ett SDI-program.

Diagram över objekten i ett SDI-program som körs.
Objekt i ett SDI-program som körs

Resten av den här serien med artiklar förklarar hur ramverksverktygen, MFC-programguiden och resursredigerarna skapar dessa objekt, hur de fungerar tillsammans och hur du använder dem i din programmering. Dokument, vyer och ramfönster beskrivs mer detaljerat i Fönsterobjekt och Arkitektur för dokument/vy.

Se även

Använda klasserna för att skriva program för Windows