Megosztás a következőn keresztül:


CMetaFileDC osztály

Megjegyzés:

A Microsoft Foundation Classes (MFC) könyvtár továbbra is támogatott. A továbbiakban azonban nem adunk hozzá funkciókat, és nem frissítjük a dokumentációt.

Implementál egy Windows-metafájlt, amely a grafikus eszköz felületének (GDI) parancsait tartalmazza, amelyeket visszajátszhat a kívánt kép vagy szöveg létrehozásához.

Szemantika

class CMetaFileDC : public CDC

Tagok

Nyilvános konstruktorok

Név Description
CMetaFileDC::CMetaFileDC Egy CMetaFileDC objektumot hoz létre.

Nyilvános metódusok

Név Description
CMetaFileDC::Close Bezárja az eszközkörnyezetet, és létrehoz egy metafájl-leírót.
CMetaFileDC::CloseEnhanced Bezár egy továbbfejlesztett metafájl-eszközkörnyezetet, és létrehoz egy továbbfejlesztett metafájl-leírót.
CMetaFileDC::Létrehozás Létrehozza a Windows metafájl eszközkörnyezetét, és csatolja az CMetaFileDC objektumhoz.
CMetaFileDC::CreateEnhanced Létrehoz egy metafájl eszközkörnyezetét egy továbbfejlesztett formátumú metafájlhoz.

Megjegyzések

Windows-metafájl implementálásához először hozzon létre egy objektumot CMetaFileDC . Hívja meg a CMetaFileDC konstruktort, majd hívja meg a Tag létrehozása függvényt, amely létrehoz egy Windows metafájl eszközkörnyezetet, és csatolja az CMetaFileDC objektumhoz.

Ezután küldje el az objektumnak CMetaFileDC az újrajátszásra szánt CDC GDI-parancsok sorozatát. Csak azok a GDI-parancsok használhatók, amelyek kimenetet hoznak létre, például MoveTo és LineTo.

Miután elküldte a kívánt parancsokat a metafájlnak, hívja meg a Close tagfüggvényt, amely bezárja a metafájl eszközkörnyezeteit, és visszaad egy metafájl-leírót. Ezután dobja el az CMetaFileDC objektumot.

CDC::P layMetaFile ezután használhatja a metafájl leíróját a metafájl ismételt lejátszásához. A metafájlt olyan Windows-függvények is módosíthatják, mint például a CopyMetaFile, amely egy metafájlt másol lemezre.

Ha a metafájlra már nincs szükség, törölje a memóriából a DeleteMetaFile Windows függvénnyel.

Az objektumot úgy is implementálhatja CMetaFileDC , hogy képes legyen kezelni a kimeneti hívásokat és az attribútumként szolgáló GDI-hívásokat, például GetTextExtent. Egy ilyen metafájl rugalmasabb, és könnyebben újra felhasználhatja az általános GDI-kódot, amely gyakran a kimeneti és attribútumhívások kombinációjából áll. Az CMetaFileDC osztály két eszközkörnyezetet örököl, m_hDC és m_hAttribDCa CDC-től. Az m_hDC eszközkörnyezet kezeli az összes CDC GDI-kimeneti hívást, az eszközkörnyezet pedig az m_hAttribDC összes CDC GDI-attribútumhívást. Ez a két eszközkörnyezet általában ugyanarra az eszközre vonatkozik. Ebben az esetben CMetaFileDCa DC attribútum alapértelmezés szerint NULL értékre van állítva.

Hozzon létre egy második eszközkörnyezetet, amely a képernyőre, a nyomtatóra vagy a metafájltól eltérő eszközre mutat, majd hívja meg a SetAttribDC tagfüggvényt az új eszközkörnyezet m_hAttribDCtársításához. A GDI tájékoztatási hívásai mostantól az újba m_hAttribDClesznek irányítva. A kimeneti GDI-hívások a m_hDCmetafájlt jelölik.

További információ: CMetaFileDCEszközkörnyezetek.

Öröklési hierarchia

CObject

CDC

CMetaFileDC

Requirements

Fejléc: afxext.h

CMetaFileDC::Close

Bezárja a metafájl eszközkörnyezetét, és létrehoz egy Windows metafájl-leírót, amely a CDC::P layMetaFile tagfüggvény használatával használható a metafájl lejátszásához.

HMETAFILE Close();

Visszaadott érték

Érvényes HMETAFILE, ha a függvény sikeres; ellenkező esetben NULL.

Megjegyzések

A Windows metafájl leírója a metafájl Windows-függvényekkel, például CopyMetaFile-nal való kezelésére is használható.

Törölje a metafájlt a használat után a Windows DeleteMetaFile függvény meghívásával.

CMetaFileDC::CloseEnhanced

Bezár egy továbbfejlesztett metafájlos eszközkörnyezetet, és visszaad egy leírót, amely egy továbbfejlesztett formátumú metafájlt azonosít.

HENHMETAFILE CloseEnhanced();

Visszaadott érték

Bővített metafájl leírója, ha sikeres; ellenkező esetben NULL.

Megjegyzések

Az alkalmazások a függvény által visszaadott továbbfejlesztett metafájl-leíróval hajthatják végre a következő feladatokat:

  • Továbbfejlesztett metafájlban tárolt kép megjelenítése

  • A továbbfejlesztett metafájl másolatainak létrehozása

  • Egyes rekordok számbavétele, szerkesztése vagy másolása a továbbfejlesztett metafájlban

  • A metafájl tartalmának opcionális leírásának lekérése a bővített metafájl fejlécéből

  • A továbbfejlesztett metafájl fejlécének másolatának lekérése

  • A bővített metafájl bináris másolatának lekérése

  • A választható palettán szereplő színek számbavétele

  • Továbbfejlesztett formátumú metafájl konvertálása Windows formátumú metafájllá

Ha az alkalmazásnak már nincs szüksége a továbbfejlesztett metafájl-leíróra, a Win32 DeleteEnhMetaFile függvény meghívásával szabadíthatja fel a leírót.

CMetaFileDC::CMetaFileDC

Hozzon létre egy objektumot CMetaFileDC két lépésben.

CMetaFileDC();

Megjegyzések

Először hívja meg CMetaFileDC, majd hívja Createmeg, amely létrehozza a Windows metafájl eszközkörnyezetét, és csatolja azt az CMetaFileDC objektumhoz.

CMetaFileDC::Létrehozás

Hozzon létre egy objektumot CMetaFileDC két lépésben.

BOOL Create(LPCTSTR lpszFilename = NULL);

Paraméterek

lpszFilename
Null értékű karaktersztringre mutat. Megadja a létrehozni kívánt metafájl fájlnevét. Ha az lpszFilename null értékű, a rendszer létrehoz egy új memórián belüli metafájlt.

Visszaadott érték

Nonzero, ha a függvény sikeres; egyéb esetben 0.

Megjegyzések

Először hívja meg a konstruktort CMetaFileDC, majd a hívást Create, amely létrehozza a Windows metafájl eszközkörnyezetét, és csatolja azt az CMetaFileDC objektumhoz.

CMetaFileDC::CreateEnhanced

Eszközkörnyezetet hoz létre egy továbbfejlesztett formátumú metafájlhoz.

BOOL CreateEnhanced(
    CDC* pDCRef,
    LPCTSTR lpszFileName,
    LPCRECT lpBounds,
    LPCTSTR lpszDescription);

Paraméterek

pDCRef
A bővített metafájl referenciaeszközét azonosítja.

lpszFileName
Null értékű karaktersztringre mutat. Megadja a létrehozandó továbbfejlesztett metafájl fájlnevét. Ha ez a paraméter NULL értékű, a bővített metafájl memóriaalapú, és tartalma elveszik az objektum megsemmisítésekor vagy a Win32 DeleteEnhMetaFile függvény meghívásakor.

lpBounds
EGY RECT-adatstruktúrára vagy egy CRect-objektumra mutat, amely a továbbfejlesztett metafájlban tárolandó kép HIMETRIC egységeiben (.01 milliméteres növekményekben) adja meg a dimenziókat.

lpszDescription
Egy nulla végződésű sztringre mutat, amely megadja a képet létrehozó alkalmazás nevét, valamint a kép címét.

Visszaadott érték

A bővített metafájl eszközkörnyezetének leírója, ha sikeres; ellenkező esetben NULL.

Megjegyzések

Ez a tartományvezérlő eszközfüggetlen képek tárolására használható.

A Windows a pDCRef paraméter által azonosított referenciaeszközt használja annak az eszköznek a felbontásának és egységeinek rögzítéséhez, amelyen a kép eredetileg megjelent. Ha a pDCRef paraméter NULL értékű, az aktuális megjelenítési eszközt használja referenciaként.

Az lpBounds paraméter által mutatott adatstruktúra bal és felső tagjainak RECT kisebbnek kell lenniük, mint a jobb és alsó tagok. A téglalap szélei mentén lévő pontok szerepelnek a képen. Ha az lpBounds NULL értékű, a grafikus eszköz felülete (GDI) kiszámítja a legkisebb téglalap méretét, amely az alkalmazás által rajzolt képet is magában foglalhatja. Az lpBounds paramétert lehetőség szerint meg kell adni.

Az lpszDescription paraméter által mutatott sztringnek null karaktert kell tartalmaznia az alkalmazás neve és a kép neve között, és két null karakterrel kell végződnie ( például "XYZ Graphics Editor\0Bald Eagle\0\0", ahol a \0 a null karaktert jelöli. Ha az lpszDescription értéke NULL, a bővített metafájl fejlécében nincs megfelelő bejegyzés.

Az alkalmazások a függvény által létrehozott tartományvezérlőt használják a grafikus képek továbbfejlesztett metafájlban való tárolására. A tartományvezérlőt azonosító leíró bármely GDI-függvénynek átadható.

Miután egy alkalmazás egy továbbfejlesztett metafájlban tárol egy képet, a függvény meghívásával bármilyen kimeneti eszközön megjelenítheti a CDC::PlayMetaFile képet. A kép megjelenítésekor a Windows az lpBounds paraméter által mutatott téglalapot és a referenciaeszköz felbontási adatait használja a kép elhelyezéséhez és méretezéséhez. A függvény által visszaadott eszközkörnyezet ugyanazokat az alapértelmezett attribútumokat tartalmazza, amelyek minden új tartományvezérlőhöz vannak társítva.

Az alkalmazásoknak a Win32 GetWinMetaFileBits függvénnyel kell átalakítaniük a továbbfejlesztett metafájlokat a régebbi Windows metafájl formátumba.

A bővített metafájl fájlnevének a következőt kell használnia: . EMF-bővítmény.

Lásd még

CDC-osztály
hierarchiadiagram