Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of mappen te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen om mappen te wijzigen.
Opmerking
De Microsoft Foundation Classes-bibliotheek (MFC) wordt nog steeds ondersteund. We voegen echter geen functies meer toe of werken de documentatie bij.
Hiermee wordt een Windows-metabestand geïmplementeerd dat een reeks GDI-opdrachten (Graphics Device Interface) bevat die u opnieuw kunt afspelen om een gewenste afbeelding of tekst te maken.
Syntaxis
class CMetaFileDC : public CDC
Leden
Openbare constructors
| Naam | Description |
|---|---|
| CMetaFileDC::CMetaFileDC | Maakt een CMetaFileDC object. |
Openbare methoden
| Naam | Description |
|---|---|
| CMetaFileDC::Close | Hiermee sluit u de apparaatcontext en maakt u een metafile-handle. |
| CMetaFileDC::CloseEnhanced | Hiermee sluit u een enhanced-metafile-apparaatcontext en maakt u een enhanced-metafile-ingang. |
| CMetaFileDC::Maken | Hiermee maakt u de Windows-metabestandapparaatcontext en koppelt u het aan het CMetaFileDC object. |
| CMetaFileDC::CreateEnhanced | Hiermee maakt u een metafile-apparaatcontext voor een metabestand met verbeterde indeling. |
Opmerkingen
Als u een Windows-metabestand wilt implementeren, maakt u eerst een CMetaFileDC object. Roep de CMetaFileDC constructor aan en roep vervolgens de functie Lid maken aan, waarmee een Windows-metabestandapparaatcontext wordt gemaakt en aan het CMetaFileDC object wordt gekoppeld.
Verzend vervolgens het CMetaFileDC object de reeks CDC GDI-opdrachten die u wilt afspelen. Alleen de GDI-opdrachten die uitvoer maken, zoals MoveTo en LineTo, kunnen worden gebruikt.
Nadat u de gewenste opdrachten naar het metabestand hebt verzonden, roept u de Close lidfunctie aan, waarmee de context van het metabestandapparaat wordt gesloten en een metabestand-handle wordt geretourneerd. Vervolgens het object verwijderen CMetaFileDC .
CDC::P layMetaFile kan vervolgens de metabestandgreep gebruiken om het metabestand herhaaldelijk af te spelen. Het metabestand kan ook worden bewerkt door Windows-functies zoals CopyMetaFile, waarmee een metabestand naar schijf wordt gekopieerd.
Wanneer het metabestand niet meer nodig is, verwijdert u het uit het geheugen met de functie DeleteMetaFile Windows.
U kunt het CMetaFileDC object ook implementeren zodat het zowel uitvoer-aanroepen als GDI-aanroepen van kenmerken kan verwerken, zoals GetTextExtent. Een dergelijk metabestand is flexibeler en kan eenvoudiger algemene GDI-code hergebruiken, die vaak bestaat uit een combinatie van uitvoer- en kenmerkoproepen. De CMetaFileDC klasse neemt twee apparaatcontexten m_hDC over en m_hAttribDC, van CDC. De m_hDC apparaatcontext verwerkt alle CDC GDI-uitvoeroproepen en de m_hAttribDC apparaatcontext verwerkt alle CDC GDI-kenmerkoproepen. Normaal gesproken verwijzen deze twee apparaatcontexten naar hetzelfde apparaat. In het geval van CMetaFileDCis het kenmerk DC standaard ingesteld op NULL.
Maak een tweede apparaatcontext die verwijst naar het scherm, een printer of ander apparaat dan een metabestand, en roep vervolgens de SetAttribDC lidfunctie aan om de context van het nieuwe apparaat m_hAttribDCaan te koppelen. GDI-oproepen voor informatie worden nu doorgestuurd naar de nieuwe m_hAttribDC. Uitvoer GDI-aanroepen gaan naar m_hDC, die het metabestand vertegenwoordigt.
Zie CMetaFileDC voor meer informatie.
Overnamehiërarchie
CMetaFileDC
Requirements
Koptekst: afxext.h
CMetaFileDC::Close
Hiermee sluit u de context van het metabestandapparaat en maakt u een Windows-metabestandgreep die kan worden gebruikt om het metabestand af te spelen met behulp van de cdc::P layMetaFile-lidfunctie .
HMETAFILE Close();
Retourwaarde
Een geldig HMETAFILE als de functie is geslaagd; anders NULL.
Opmerkingen
De Windows-metabestandgreep kan ook worden gebruikt om het metabestand te bewerken met Windows-functies zoals CopyMetaFile.
Verwijder het metabestand na gebruik door de functie Windows DeleteMetaFile aan te roepen.
CMetaFileDC::CloseEnhanced
Hiermee sluit u een enhanced-metafile-apparaatcontext en retourneert u een ingang die een metabestand met verbeterde indeling identificeert.
HENHMETAFILE CloseEnhanced();
Retourwaarde
Een ingang van een uitgebreid metabestand, indien geslaagd; anders NULL.
Opmerkingen
Een toepassing kan de enhanced-metafile-handle gebruiken die door deze functie wordt geretourneerd om de volgende taken uit te voeren:
Een afbeelding weergeven die is opgeslagen in een uitgebreid metabestand
Kopieën van het verbeterde metabestand maken
Afzonderlijke records opsommen, bewerken of kopiëren in het verbeterde metabestand
Een optionele beschrijving van de inhoud van het metabestand ophalen uit de header enhanced-metafile
Een kopie van de header enhanced-metafile ophalen
Een binaire kopie van het verbeterde metabestand ophalen
De kleuren in het optionele palet opsommen
Een metabestand met verbeterde indeling converteren naar een Windows-indelingsmetabestand
Wanneer de toepassing de verbeterde metafile-ingang niet meer nodig heeft, moet deze de ingang vrijgeven door de Win32-functie DeleteEnhMetaFile aan te roepen.
CMetaFileDC::CMetaFileDC
Maak een CMetaFileDC object in twee stappen.
CMetaFileDC();
Opmerkingen
CMetaFileDCRoep eerst aan en roep Createvervolgens aan, waarmee de windows-metabestandapparaatcontext wordt gemaakt en aan het CMetaFileDC object wordt gekoppeld.
CMetaFileDC::Maken
Maak een CMetaFileDC object in twee stappen.
BOOL Create(LPCTSTR lpszFilename = NULL);
Parameterwaarden
lpszFilename
Verwijst naar een tekenreeks die door null is beëindigd. Hiermee geeft u de bestandsnaam van het metabestand te maken. Als lpszFilename NULL is, wordt er een nieuw metabestand in het geheugen gemaakt.
Retourwaarde
Niet-nul als de functie is geslaagd; anders 0.
Opmerkingen
Roep eerst de constructor CMetaFileDCaan en roep Createvervolgens de context van het Windows-metabestandapparaat aan en koppelt deze aan het CMetaFileDC object.
CMetaFileDC::CreateEnhanced
Hiermee maakt u een apparaatcontext voor een metabestand met verbeterde indeling.
BOOL CreateEnhanced(
CDC* pDCRef,
LPCTSTR lpszFileName,
LPCRECT lpBounds,
LPCTSTR lpszDescription);
Parameterwaarden
pDCRef
Identificeert een referentieapparaat voor het verbeterde metabestand.
lpszFileName
Verwijst naar een tekenreeks die door null is beëindigd. Hiermee geeft u de bestandsnaam voor het verbeterde metabestand dat moet worden gemaakt. Als deze parameter NULL is, is het verbeterde metabestand gebaseerd op geheugen en gaat de inhoud ervan verloren wanneer het object wordt vernietigd of wanneer de Win32-functie DeleteEnhMetaFile wordt aangeroepen.
lpBounds
Verwijst naar een RECT-gegevensstructuur of een CRect-object dat de afmetingen in HIMETRIC-eenheden (in stappen van 01 millimeter) van de afbeelding aangeeft die moeten worden opgeslagen in het verbeterde metabestand.
lpszDescription
Verwijst naar een met nul beëindigde tekenreeks die de naam aangeeft van de toepassing die de afbeelding heeft gemaakt, evenals de titel van de afbeelding.
Retourwaarde
Een ingang van de apparaatcontext voor het verbeterde metabestand, indien geslaagd; anders NULL.
Opmerkingen
Deze domeincontroller kan worden gebruikt om een apparaatonafhankelijke afbeelding op te slaan.
Windows gebruikt het referentieapparaat dat is geïdentificeerd door de parameter pDCRef om de resolutie en eenheden van het apparaat vast te leggen waarop oorspronkelijk een afbeelding werd weergegeven. Als de parameter pDCRef NULL is, wordt het huidige weergaveapparaat gebruikt ter referentie.
De linker- en bovenste leden van de RECT gegevensstructuur die door de parameter lpBounds worden verwezen, moeten respectievelijk kleiner zijn dan de rechter- en onderste leden. Punten langs de randen van de rechthoek worden in de afbeelding opgenomen. Als lpBounds NULL is, berekent de grafische apparaatinterface (GDI) de afmetingen van de kleinste rechthoek die de afbeelding kan plaatsen die door de toepassing is getekend. De parameter lpBounds moet waar mogelijk worden opgegeven.
De tekenreeks waarnaar wordt verwezen door de parameter lpszDescription moet een null-teken bevatten tussen de naam van de toepassing en de naam van de afbeelding en moet eindigen met twee null-tekens, bijvoorbeeld 'XYZ Graphics Editor\0Bald Eagle\0\0', waarbij \0 het null-teken vertegenwoordigt. Als lpszDescription NULL is, is er geen overeenkomende vermelding in de header enhanced-metafile.
Toepassingen gebruiken de DC die door deze functie is gemaakt om een afbeelding van afbeeldingen op te slaan in een uitgebreid metabestand. De ingang die deze DC identificeert, kan worden doorgegeven aan elke GDI-functie.
Nadat een toepassing een afbeelding in een uitgebreid metabestand heeft opgeslagen, kan deze de afbeelding weergeven op elk uitvoerapparaat door de functie aan te CDC::PlayMetaFile roepen. Bij het weergeven van de afbeelding gebruikt Windows de rechthoek waarnaar wordt verwezen door de parameter lpBounds en de resolutiegegevens van het referentieapparaat om de afbeelding te positioneren en te schalen. De apparaatcontext die door deze functie wordt geretourneerd, bevat dezelfde standaardkenmerken die zijn gekoppeld aan een nieuwe domeincontroller.
Toepassingen moeten de Win32-functie GetWinMetaFileBits gebruiken om een uitgebreid metabestand te converteren naar de oudere Windows-metabestandindeling.
De bestandsnaam voor het verbeterde metabestand moet de . EMF-extensie.