Dela via


Dokumentmallar och processen för att skapa dokument/visa

För att hantera den komplexa processen med att skapa dokument med tillhörande vyer och ramfönster använder ramverket två dokumentmallsklasser: CSingleDocTemplate för SDI-program och CMultiDocTemplate för MDI-program. A CSingleDocTemplate kan skapa och lagra ett dokument av en typ i taget. A CMultiDocTemplate behåller en lista över många öppna dokument av en typ.

Vissa program stöder flera dokumenttyper. Ett program kan till exempel ha stöd för textdokument och grafikdokument. När användaren i ett sådant program väljer kommandot Nytt på Arkiv-menyn visas en dialogruta med en lista över möjliga nya dokumenttyper att öppna. För varje dokumenttyp som stöds använder programmet ett distinkt dokumentmallobjekt. Följande bild illustrerar konfigurationen av ett MDI-program som stöder två dokumenttyper och visar flera öppna dokument.

Diagram över ett MDI-program som har två dokumenttyper.
Ett MDI-program med två dokumenttyper

Dokumentmallar skapas och underhålls av programobjektet. En av de viktigaste uppgifterna som utförs under programmets InitInstance funktion är att skapa en eller flera dokumentmallar av lämplig typ. Den här funktionen beskrivs i Skapa dokumentmall. Programobjektet lagrar en pekare till varje dokumentmall i malllistan och tillhandahåller ett gränssnitt för att lägga till dokumentmallar.

Om du behöver stöd för två eller flera dokumenttyper måste du lägga till ett extra anrop till AddDocTemplate för varje dokumenttyp.

En ikon registreras för varje dokumentmall baserat på dess position i programmets lista över dokumentmallar. Ordningen på dokumentmallarna bestäms av den ordning de läggs till med anrop till AddDocTemplate. MFC förutsätter att den första ikonresursen i programmet är programikonen, nästa ikonresurs är den första dokumentikonen och så vidare.

En dokumentmall är till exempel den tredje av tre för programmet. Om det finns en ikonresurs i programmet vid index 3 används den ikonen för dokumentmallen. Annars används ikonen vid index 0 som standard.

Se även

Allmänna MFC-ämnen
Skapa dokumentmall
Skapande av dokument/visning
Relationer mellan MFC-objekt
Skapa nya dokument, Windows och vyer