Dela via


Förbättrad skapande av metafil

Du skapar en förbättrad metafil med hjälp av funktionen CreateEnhMetaFile och anger lämpliga argument. Systemet använder dessa argument för att underhålla bilddimensioner, avgöra om metafilen ska lagras på en disk eller i minnet och så vidare.

Om du vill underhålla bilddimensioner mellan utdataenheter CreateEnhMetaFile kräver referensenhetens upplösning. Den här referensenheten är den enhet som bilden först visades på, och den referens-DC- är enhetskontext associerad med referensenheten. När du anropar funktionen CreateEnhMetaFile måste du ange en referens som identifierar den här domänkontrollanten. Du kan hämta handtaget genom att anropa funktionen GetDC eller CreateDC. Du kan också ange NULL- som referens för att använda den aktuella visningsenheten för referensenheten.

De flesta program lagrar bilder permanent och skapar därför en förbättrad metafil som lagras på en disk. Det finns dock vissa instanser när detta inte är nödvändigt. Ett ordbehandlingsprogram som tillhandahåller diagramritningsfunktioner kan till exempel lagra ett användardefinierat diagram i minnet som en förbättrad metafil och sedan kopiera de förbättrade metafilbitarna från minnet till användarens dokumentfil. Ett program som kräver en metafil som lagras permanent på en disk måste ange filnamnet när det anropar CreateEnhMetaFile. Om du inte anger ett filnamn behandlar systemet automatiskt metafilen som en tillfällig fil och lagrar den i minnet.

Du kan lägga till en valfri textbeskrivning i en metafil som innehåller information om bilden och författaren. Ett program kan visa dessa strängar i dialogrutan Öppna fil för att ge användaren information om metafilinnehåll som hjälper dig att välja rätt fil. Om ett program innehåller textbeskrivningen måste det ange en pekare till strängen när den anropar CreateEnhMetaFile.

När CreateEnhMetaFile lyckas returneras ett handtag som identifierar en särskild metafilenhetskontext. En metafilenhetskontext är unik eftersom den är associerad med en fil i stället för med en utdataenhet. När systemet bearbetar en GDI-funktion som tog emot ett handtag till en metafilenhetskontext konverterar den GDI-funktionen till en post med förbättrad metafil och lägger till posten i slutet av den förbättrade metafilen.

När en bild är klar och den sista posten läggs till i den förbättrade metafilen kan programmet stänga filen genom att anropa funktionen CloseEnhMetaFile. Den här funktionen stänger och tar bort den särskilda metafilenhetskontexten och returnerar ett handtag som identifierar den förbättrade metafilen.

Om du vill ta bort en metafil i utökat format eller ett metafilreferens med förbättrat format anropar du funktionen DeleteEnhMetaFile.