Bagikan melalui


Kelas CMetaFileDC

Menerapkan metafile Windows, yang berisi urutan perintah antarmuka perangkat grafis (GDI) yang dapat Anda putar ulang untuk membuat gambar atau teks yang diinginkan.

Sintaks

class CMetaFileDC : public CDC

Anggota

Konstruktor Publik

Nama Deskripsi
CMetaFileDC::CMetaFileDC Membuat CMetaFileDC objek.

Metode Publik

Nama Deskripsi
CMetaFileDC::Close Menutup konteks perangkat dan membuat handel metafile.
CMetaFileDC::CloseEnhanced Menutup konteks perangkat metafile yang disempurnakan dan membuat handel metafile yang disempurnakan.
CMetaFileDC::Create Membuat konteks perangkat metafile Windows dan melampirkannya ke CMetaFileDC objek.
CMetaFileDC::CreateEnhanced Membuat konteks perangkat metafile untuk metafile format yang disempurnakan.

Keterangan

Untuk menerapkan metafile Windows, pertama-tama buat CMetaFileDC objek. CMetaFileDC Panggil konstruktor, lalu panggil fungsi Buat anggota, yang membuat konteks perangkat metafile Windows dan melampirkannya ke CMetaFileDC objek.

Selanjutnya kirim CMetaFileDC objek urutan perintah CDC GDI yang ingin Anda putar ulang. Hanya perintah GDI yang membuat output, seperti MoveTo dan LineTo, yang dapat digunakan.

Setelah Anda mengirim perintah yang diinginkan ke metafile, panggil Close fungsi anggota, yang menutup konteks perangkat metafile dan mengembalikan handel metafile. Kemudian buang CMetaFileDC objek.

CDC::P layMetaFile kemudian dapat menggunakan handel metafile untuk memutar metafile berulang kali. Metafile juga dapat dimanipulasi oleh fungsi Windows seperti CopyMetaFile, yang menyalin metafile ke disk.

Ketika metafile tidak lagi diperlukan, hapus dari memori dengan fungsi Windows DeleteMetaFile .

Anda juga dapat menerapkan CMetaFileDC objek sehingga dapat menangani panggilan output dan atribut panggilan GDI seperti GetTextExtent. Metafile semacam itu lebih fleksibel dan dapat lebih mudah menggunakan kembali kode GDI umum, yang sering terdiri dari campuran panggilan output dan atribut. Kelas mewarisi CMetaFileDC dua konteks perangkat, m_hDC dan m_hAttribDC, dari CDC. Konteks m_hDC perangkat menangani semua panggilan output CDC GDI dan m_hAttribDC konteks perangkat menangani semua panggilan atribut CDC GDI. Biasanya, kedua konteks perangkat ini merujuk ke perangkat yang sama. Dalam kasus CMetaFileDC, atribut DC diatur ke NULL secara default.

Buat konteks perangkat kedua yang menunjuk ke layar, printer, atau perangkat selain metafile, lalu panggil SetAttribDC fungsi anggota untuk mengaitkan konteks perangkat baru dengan m_hAttribDC. Panggilan GDI untuk informasi sekarang akan diarahkan ke yang baru m_hAttribDC. Panggilan GDI output akan masuk ke m_hDC, yang mewakili metafile.

Untuk informasi selengkapnya tentang CMetaFileDC, lihat Konteks Perangkat.

Hierarki Warisan

CObject

CDC

CMetaFileDC

Persyaratan

Header: afxext.h

CMetaFileDC::Close

Menutup konteks perangkat metafile dan membuat handel metafile Windows yang dapat digunakan untuk memutar metafile dengan menggunakan fungsi anggota CDC::P layMetaFile .

HMETAFILE Close();

Tampilkan Nilai

HMETAFILE yang valid jika fungsi berhasil; jika tidak, NULL.

Keterangan

Handel metafile Windows juga dapat digunakan untuk memanipulasi metafile dengan fungsi Windows seperti CopyMetaFile.

Hapus metafile setelah digunakan dengan memanggil fungsi Windows DeleteMetaFile .

CMetaFileDC::CloseEnhanced

Menutup konteks perangkat metafile yang disempurnakan dan mengembalikan handel yang mengidentifikasi metafile format yang ditingkatkan.

HENHMETAFILE CloseEnhanced();

Tampilkan Nilai

Handel metafile yang ditingkatkan, jika berhasil; jika tidak, NULL.

Keterangan

Aplikasi dapat menggunakan handel metafile yang disempurnakan yang dikembalikan oleh fungsi ini untuk melakukan tugas-tugas berikut:

  • Menampilkan gambar yang disimpan dalam metafile yang ditingkatkan

  • Membuat salinan metafile yang ditingkatkan

  • Menghitung, mengedit, atau menyalin rekaman individual dalam metafile yang disempurnakan

  • Mengambil deskripsi opsional konten metafile dari header metafile yang disempurnakan

  • Mengambil salinan header metafile yang disempurnakan

  • Mengambil salinan biner metafile yang ditingkatkan

  • Menghitung warna dalam palet opsional

  • Mengonversi metafile format yang disempurnakan menjadi metafile format Windows

Ketika aplikasi tidak lagi membutuhkan handel metafile yang ditingkatkan, aplikasi harus melepaskan handel dengan memanggil fungsi Win32 DeleteEnhMetaFile .

CMetaFileDC::CMetaFileDC

Buat CMetaFileDC objek dalam dua langkah.

CMetaFileDC();

Keterangan

Pertama, panggil CMetaFileDC, lalu panggil Create, yang membuat konteks perangkat metafile Windows dan melampirkannya ke CMetaFileDC objek.

CMetaFileDC::Create

Buat CMetaFileDC objek dalam dua langkah.

BOOL Create(LPCTSTR lpszFilename = NULL);

Parameter

lpszFilename
Menunjuk ke string karakter yang dihentikan null. Menentukan nama file metafile yang akan dibuat. Jika lpszFilename adalah NULL, metafile dalam memori baru akan dibuat.

Tampilkan Nilai

Bukan nol jika fungsi berhasil; jika tidak, 0.

Keterangan

Pertama, panggil konstruktor CMetaFileDC, lalu panggil Create, yang membuat konteks perangkat metafile Windows dan melampirkannya ke CMetaFileDC objek.

CMetaFileDC::CreateEnhanced

Membuat konteks perangkat untuk metafile format yang disempurnakan.

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

Parameter

pDCRef
Mengidentifikasi perangkat referensi untuk metafile yang ditingkatkan.

lpszFileName
Menunjuk ke string karakter yang dihentikan null. Menentukan nama file untuk metafile yang ditingkatkan yang akan dibuat. Jika parameter ini NULL, metafile yang ditingkatkan berbasis memori dan kontennya hilang ketika objek dihancurkan atau ketika fungsi Win32 DeleteEnhMetaFile dipanggil.

lpBounds
Menunjuk ke struktur data RECT atau objek CRect yang menentukan dimensi dalam unit HIMETRIC (dalam kenaikan .01-milimeter) gambar yang akan disimpan dalam metafile yang ditingkatkan.

lpszDescription
Menunjuk ke string nol yang dihentikan yang menentukan nama aplikasi yang membuat gambar, serta judul gambar.

Tampilkan Nilai

Handel konteks perangkat untuk metafile yang ditingkatkan, jika berhasil; jika tidak, NULL.

Keterangan

DC ini dapat digunakan untuk menyimpan gambar independen perangkat.

Windows menggunakan perangkat referensi yang diidentifikasi oleh parameter pDCRef untuk merekam resolusi dan unit perangkat tempat gambar awalnya muncul. Jika parameter pDCRef adalah NULL, parameter tersebut menggunakan perangkat tampilan saat ini untuk referensi.

Anggota kiri dan atas struktur data yang RECT ditunjukkan oleh parameter lpBounds masing-masing harus lebih kecil dari anggota kanan dan bawah. Titik di sepanjang tepi persegi disertakan dalam gambar. Jika lpBounds adalah NULL, antarmuka perangkat grafis (GDI) menghitung dimensi persegi terkecil yang dapat mengapit gambar yang digambar oleh aplikasi. Parameter lpBounds harus disediakan jika memungkinkan.

String yang diarahkan oleh parameter lpszDescription harus berisi karakter null antara nama aplikasi dan nama gambar dan harus dihentikan dengan dua karakter null —misalnya, "XYZ Graphics Editor\0Bald Eagle\0\0," di mana \0 mewakili karakter null. Jika lpszDescription adalah NULL, tidak ada entri yang sesuai di header enhanced-metafile.

Aplikasi menggunakan DC yang dibuat oleh fungsi ini untuk menyimpan gambar grafis dalam metafile yang ditingkatkan. Handel yang mengidentifikasi DC ini dapat diteruskan ke fungsi GDI apa pun.

Setelah aplikasi menyimpan gambar dalam metafile yang ditingkatkan, aplikasi dapat menampilkan gambar pada perangkat output apa pun dengan memanggil CDC::PlayMetaFile fungsi . Saat menampilkan gambar, Windows menggunakan persegi yang ditujukkan oleh parameter lpBounds dan data resolusi dari perangkat referensi untuk memosisikan dan menskalakan gambar. Konteks perangkat yang dikembalikan oleh fungsi ini berisi atribut default yang sama yang terkait dengan DC baru.

Aplikasi harus menggunakan fungsi Win32 GetWinMetaFileBits untuk mengonversi metafile yang ditingkatkan ke format metafile Windows yang lebih lama.

Nama file untuk metafile yang ditingkatkan harus menggunakan . Ekstensi EMF.

Lihat juga

Kelas CDC
Bagan Hierarki