Aracılığıyla paylaş


CMetaFileDC Sınıfı

İstenen bir görüntü veya metin oluşturmak için yeniden yürütebileceğiniz bir dizi grafik cihaz arabirimi (GDI) komutu içeren bir Windows meta dosyası uygular.

Sözdizimi

class CMetaFileDC : public CDC

Üyeler

Ortak Oluşturucular

Ad Tanım
CMetaFileDC::CMetaFileDC Bir CMetaFileDC nesne oluşturur.

Genel Yöntemler

Ad Tanım
CMetaFileDC::Close Cihaz bağlamını kapatır ve bir meta dosyası tanıtıcısı oluşturur.
CMetaFileDC::CloseEnhanced Gelişmiş meta dosyası cihaz bağlamını kapatır ve gelişmiş meta dosyası tutamacını oluşturur.
CMetaFileDC::Create Windows meta dosyası cihaz bağlamını oluşturur ve nesnesine CMetaFileDC ekler.
CMetaFileDC::CreateEnhanced Gelişmiş biçimli bir meta dosyası için bir meta dosyası cihaz bağlamı oluşturur.

Açıklamalar

Windows meta dosyası uygulamak için önce bir CMetaFileDC nesne oluşturun. Oluşturucuyu çağırınCMetaFileDC, ardından Bir Windows meta dosyası cihaz bağlamı oluşturan ve bunu nesnesine ekleyen Create member işlevini çağırınCMetaFileDC.

Ardından nesneye CMetaFileDC , yeniden yürütmesini istediğiniz CDC GDI komutlarının sırasını gönderin. Yalnızca ve LineTogibi MoveTo çıkış oluşturan GDI komutları kullanılabilir.

İstenen komutları meta dosyasına gönderdikten sonra, meta dosyası cihaz bağlamlarını kapatan ve bir meta dosyası tanıtıcısı döndüren üye işlevini çağırın Close . Ardından nesnesini atın CMetaFileDC .

CDC::P layMetaFile daha sonra meta dosyasını tekrar tekrar oynatmak için meta dosyası tutamacını kullanabilir. Meta dosyası, meta dosyasını diske kopyalayan CopyMetaFile gibi Windows işlevleri tarafından da işlenebilir.

Meta dosyası artık gerekli olmadığında DeleteMetaFile Windows işleviyle bellekten silin.

Ayrıca, nesnesini hem çıkış çağrılarını hem de gibi öznitelik GDI çağrılarını işleyebilmesi için GetTextExtentuygulayabilirsinizCMetaFileDC. Böyle bir meta dosyası daha esnektir ve genellikle çıkış ve öznitelik çağrılarının karışımından oluşan genel GDI kodunu daha kolay yeniden kullanabilir. CMetaFileDC sınıfı cdc'den m_hDC ve m_hAttribDCiki cihaz bağlamını devralır. Cihaz bağlamı m_hDC tüm CDC GDI çıkış çağrılarını işler ve m_hAttribDC cihaz bağlamı tüm CDC GDI öznitelik çağrılarını işler. Normalde bu iki cihaz bağlamı aynı cihaza başvurur. durumunda CMetaFileDC, DC özniteliği varsayılan olarak NULL olarak ayarlanır.

Ekrana, yazıcıya veya meta dosyası dışındaki bir cihaza işaret eden ikinci bir cihaz bağlamı oluşturun, ardından yeni cihaz bağlamını ile m_hAttribDCilişkilendirmek için üye işlevini çağırınSetAttribDC. Bilgi için GDI çağrıları artık yeni m_hAttribDCöğesine yönlendirilecek. Çıktı GDI çağrıları, meta dosyasını temsil eden öğesine gider m_hDC.

hakkında CMetaFileDCdaha fazla bilgi için bkz . Cihaz Bağlamları.

Devralma Hiyerarşisi

Cobject

CDC

CMetaFileDC

Gereksinimler

Üst bilgi: afxext.h

CMetaFileDC::Close

Meta dosyası cihaz bağlamını kapatır ve CDC::P layMetaFile üye işlevi kullanılarak meta dosyasını yürütmek için kullanılabilecek bir Windows meta dosyası tanıtıcısı oluşturur.

HMETAFILE Close();

İade Değeri

İşlev başarılı olursa geçerli bir HMETAFILE; aksi takdirde NULL.

Açıklamalar

Windows meta dosyası tanıtıcısı, meta dosyasını CopyMetaFile gibi Windows işlevleriyle işlemek için de kullanılabilir.

Windows DeleteMetaFile işlevini çağırarak meta dosyasını kullandıktan sonra silin.

CMetaFileDC::CloseEnhanced

Gelişmiş meta dosyası cihaz bağlamını kapatır ve gelişmiş biçimli meta dosyasını tanımlayan bir tanıtıcı döndürür.

HENHMETAFILE CloseEnhanced();

İade Değeri

Başarılı olursa gelişmiş meta dosyasının tanıtıcısı; aksi takdirde NULL.

Açıklamalar

Bir uygulama, aşağıdaki görevleri gerçekleştirmek için bu işlev tarafından döndürülen gelişmiş meta dosyası tutamacını kullanabilir:

  • Gelişmiş meta dosyada depolanan bir resmi görüntüleme

  • Gelişmiş meta dosyasının kopyalarını oluşturma

  • Gelişmiş meta dosyasındaki kayıtları tek tek listeleme, düzenleme veya kopyalama

  • Gelişmiş meta dosyası üst bilgisinden meta dosyası içeriğinin isteğe bağlı açıklamasını alma

  • Gelişmiş meta dosyası üst bilgisinin bir kopyasını alma

  • Gelişmiş meta dosyasının ikili kopyasını alma

  • İsteğe bağlı paletteki renkleri numaralandırma

  • Gelişmiş biçimli meta dosyasını Windows biçimli meta dosyaya dönüştürme

Uygulamanın gelişmiş meta dosyası tanıtıcısına artık ihtiyacı kalmadığında, Win32 DeleteEnhMetaFile işlevini çağırarak tanıtıcıyı serbest bırakması gerekir.

CMetaFileDC::CMetaFileDC

İki adımda bir CMetaFileDC nesne oluşturun.

CMetaFileDC();

Açıklamalar

İlk olarak çağırın, CMetaFileDCardından Windows meta dosyası cihaz bağlamını oluşturan ve nesnesine ekleyen öğesini çağırın CMetaFileDC Create.

CMetaFileDC::Create

İki adımda bir CMetaFileDC nesne oluşturun.

BOOL Create(LPCTSTR lpszFilename = NULL);

Parametreler

lpszFilename
Null olarak sonlandırılan bir karakter dizesini gösterir. Oluşturulacak meta dosyasının dosya adını belirtir. lpszFilename NULL ise, yeni bir bellek içi meta dosyası oluşturulur.

İade Değeri

İşlev başarılı olursa sıfır dışında bir değer, aksi durumda 0.

Açıklamalar

İlk olarak oluşturucuyu çağırınCMetaFileDC, ardından Windows meta dosyası cihaz bağlamını oluşturan ve nesnesine ekleyen öğesini çağırınCreateCMetaFileDC.

CMetaFileDC::CreateEnhanced

Gelişmiş biçimli meta dosyası için bir cihaz bağlamı oluşturur.

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

Parametreler

pDCRef
Gelişmiş meta dosyası için bir başvuru cihazı tanımlar.

lpszFileName
Null olarak sonlandırılan bir karakter dizesini gösterir. Oluşturulacak gelişmiş meta dosyasının dosya adını belirtir. Bu parametre NULL ise, geliştirilmiş meta dosyası bellek tabanlıdır ve nesne yok edildiğinde veya Win32 DeleteEnhMetaFile işlevi çağrıldığında içeriği kaybolur.

lpBounds
Geliştirilmiş meta dosyasında depolanacak resmin HIMETRIC birimlerindeki (0,01 milimetrelik artışlarla) boyutları belirten bir RECT veri yapısına veya CRect nesnesine işaret eder.

lpszDescription
Resmi oluşturan uygulamanın adını ve resmin başlığını belirten sıfır sonlandırılan bir dizeye işaret eder.

İade Değeri

Başarılı olursa gelişmiş meta dosyası için cihaz bağlamının tanıtıcısı; aksi takdirde NULL.

Açıklamalar

Bu DC, cihazdan bağımsız bir resmi depolamak için kullanılabilir.

Windows, bir resmin ilk görüntülendiği cihazın çözünürlüğünü ve birimlerini kaydetmek için pDCRef parametresi tarafından tanımlanan başvuru cihazını kullanır. pDCRef parametresi NULL ise, başvuru için geçerli görüntüleme cihazını kullanır.

lpBounds parametresi tarafından RECT işaret edilen veri yapısının sol ve üst üyeleri sırasıyla sağ ve alt üyelerden daha küçük olmalıdır. Dikdörtgenin kenarlarındaki noktalar resme eklenir. lpBounds NULL ise, grafik cihaz arabirimi (GDI), uygulama tarafından çizilen resmi kapatabilecek en küçük dikdörtgenin boyutlarını hesaplar. lpBounds parametresi mümkün olduğunda sağlanmalıdır.

lpszDescription parametresi tarafından işaret edilen dize, uygulama adı ile resim adı arasında null karakter içermelidir ve iki null karakterle sonlandırılmalıdır; örneğin, "XYZ Grafik Düzenleyicisi\0Bald Eagle\0\0", burada \0 null karakteri temsil eder. lpszDescription NULL ise, gelişmiş meta dosyası üst bilgisinde buna karşılık gelen giriş yoktur.

Uygulamalar, grafik resmini gelişmiş bir meta dosyasında depolamak için bu işlev tarafından oluşturulan DC'yi kullanır. Bu DC'yi tanımlayan tanıtıcı herhangi bir GDI işlevine geçirilebilir.

Uygulama bir resmi gelişmiş bir meta dosyasında depoladıktan sonra, işlevi çağırarak herhangi bir çıkış cihazında CDC::PlayMetaFile resmi görüntüleyebilir. Resmi görüntülerken Windows, resmi konumlandırmak ve ölçeklendirmek için lpBounds parametresinin işaret ettiği dikdörtgeni ve başvuru cihazından çözünürlük verilerini kullanır. Bu işlev tarafından döndürülen cihaz bağlamı, herhangi bir yeni DC ile ilişkili aynı varsayılan öznitelikleri içerir.

Uygulamalar, gelişmiş bir meta dosyasını eski Windows meta dosyası biçimine dönüştürmek için Win32 GetWinMetaFileBits işlevini kullanmalıdır.

Gelişmiş meta dosyasının dosya adı öğesini kullanmalıdır. EMF uzantısı.

Ayrıca bkz.

CDC Sınıfı
Hiyerarşi Grafiği