Bagikan melalui


Struktur ATL_DRAWINFO

Berisi informasi yang digunakan untuk penyajian ke berbagai target, seperti printer, metafile, atau kontrol ActiveX.

Sintaks

struct ATL_DRAWINFO {
    UINT cbSize;
    DWORD dwDrawAspect;
    LONG lindex;
    DVTARGETDEVICE* ptd;
    HDC hicTargetDev;
    HDC hdcDraw;
    LPCRECTL prcBounds;
    LPCRECTL prcWBounds;
    BOOL bOptimize;
    BOOL bZoomed;
    BOOL bRectInHimetric;
    SIZEL ZoomNum;
    SIZEL ZoomDen;
};

Anggota

cbSize
Ukuran struktur, dalam byte.

dwDrawAspect
Menentukan bagaimana target akan diwakili. Representasi dapat menyertakan konten, ikon, gambar mini, atau dokumen cetak. Untuk daftar nilai yang mungkin, lihat DVASPECT dan DVASPECT2.

lindex
Bagian dari target yang menarik untuk operasi undian. Interpretasinya bervariasi tergantung pada nilai dalam dwDrawAspect anggota.

ptd
Pointer ke struktur DVTARGETDEVICE yang memungkinkan pengoptimalan gambar tergantung pada aspek yang ditentukan. Perhatikan bahwa objek dan kontainer yang lebih baru yang mendukung antarmuka gambar yang dioptimalkan juga mendukung anggota ini. Objek dan kontainer lama yang tidak mendukung antarmuka gambar yang dioptimalkan selalu menentukan NULL untuk anggota ini.

hicTargetDev
Konteks informasi untuk perangkat target yang menunjuk ke ptd tempat objek dapat mengekstrak metrik perangkat dan menguji kemampuan perangkat. Jika ptd NULL, objek harus mengabaikan nilai dalam hicTargetDev anggota.

hdcDraw
Konteks perangkat yang akan digambar. Untuk objek tanpa jendela, hdcDraw anggota berada dalam MM_TEXT mode pemetaan dengan koordinat logisnya yang cocok dengan koordinat klien dari jendela yang berisi. Selain itu, konteks perangkat harus dalam keadaan yang sama dengan yang biasanya diteruskan oleh pesan WM_PAINT .

prcBounds
Penunjuk ke struktur RECTL yang menentukan persegi dan hdcDraw tempat objek harus digambar. Anggota ini mengontrol penempatan dan peregangan objek. Anggota ini harus NULL untuk menggambar objek aktif tanpa jendela di tempat. Dalam setiap situasi lainnya, NULL bukan nilai hukum dan harus mengakibatkan E_INVALIDARG kode kesalahan. Jika kontainer meneruskan nilai non-NULL ke objek tanpa jendela, objek harus merender aspek yang diminta ke dalam konteks perangkat dan persegi panjang yang ditentukan. Kontainer dapat meminta ini dari objek tanpa jendela untuk merender tampilan objek kedua yang tidak aktif atau untuk mencetak objek.

prcWBounds
Jika hdcDraw adalah konteks perangkat metafile (lihat GetDeviceCaps di Windows SDK), ini adalah penunjuk ke struktur yang RECTL menentukan persegi panjang pembatas dalam metafile yang mendasarinya. Struktur persegi panjang berisi tingkat jendela dan asal jendela. Nilai-nilai ini berguna untuk menggambar metafiles. Persegi panjang yang ditunjukkan oleh prcBounds bersarang di dalam persegi panjang ini prcWBounds ; persegi panjang berada di ruang koordinat yang sama.

bOptimize
Bukan nol jika gambar kontrol akan dioptimalkan, jika tidak, 0. Jika gambar dioptimalkan, status konteks perangkat akan dipulihkan secara otomatis saat Anda selesai merender.

bZoomed
Bukan nol jika target memiliki faktor zoom, jika tidak, 0. Faktor zoom disimpan di ZoomNum.

bRectInHimetric
Bukan nol jika dimensi prcBounds berada di HIMETRIC, jika tidak, 0.

ZoomNum
Lebar dan tinggi persegi panjang tempat objek dirender. Faktor zoom di sepanjang sumbu x (proporsi ukuran alami objek hingga batasnya saat ini) dari target adalah nilai ZoomNum.cx dibagi dengan nilai ZoomDen.cx. Faktor zoom di sepanjang sumbu y dicapai dengan cara yang sama.

ZoomDen
Lebar dan tinggi target yang sebenarnya.

Keterangan

Penggunaan umum struktur ini adalah pengambilan informasi selama penyajian objek target. Misalnya, Anda dapat mengambil nilai dari ATL_DRAWINFO di dalam kelebihan beban CComControlBase::OnDrawAdvanced.

Struktur ini menyimpan informasi terkait yang digunakan untuk merender tampilan objek untuk perangkat target. Informasi yang diberikan dapat digunakan dalam menggambar ke layar, printer, atau bahkan metafile.

Persyaratan

Header: atlctl.h

Lihat juga

Kelas dan struktur
IViewObject::D raw
CComControlBase::OnDrawAdvanced