Struktur NMCUSTOMDRAW (commctrl.h)

Berisi informasi khusus untuk kode pemberitahuan NM_CUSTOMDRAW .

Sintaks

typedef struct tagNMCUSTOMDRAWINFO {
  NMHDR     hdr;
  DWORD     dwDrawStage;
  HDC       hdc;
  RECT      rc;
  DWORD_PTR dwItemSpec;
  UINT      uItemState;
  LPARAM    lItemlParam;
} NMCUSTOMDRAW, *LPNMCUSTOMDRAW;

Anggota

hdr

Jenis: NMHDR

Struktur NMHDR yang berisi informasi tentang kode pemberitahuan ini.

dwDrawStage

Jenis: DWORD

Tahap gambar saat ini. Ini adalah salah satu nilai berikut.

Nilai Makna
Nilai Global:
CDDS_POSTERASE
Setelah siklus penghapusan selesai.
CDDS_POSTPAINT
Setelah siklus lukisan selesai.
CDDS_PREERASE
Sebelum siklus penghapusan dimulai.
CDDS_PREPAINT
Sebelum siklus lukisan dimulai.
Nilai khusus item:
CDDS_ITEM
Menunjukkan bahwa anggota dwItemSpec, uItemState, dan lItemlParam valid.
CDDS_ITEMPOSTERASE
Setelah item dihapus.
CDDS_ITEMPOSTPAINT
Setelah item digambar.
CDDS_ITEMPREERASE
Sebelum item dihapus.
CDDS_ITEMPREPAINT
Sebelum item digambar.
CDDS_SUBITEM
Bendera dikombinasikan dengan CDDS_ITEMPREPAINT atau CDDS_ITEMPOSTPAINT jika subitem sedang digambar. Ini hanya akan diatur jika CDRF_NOTIFYITEMDRAW dikembalikan dari CDDS_PREPAINT.

hdc

Jenis: HDC

Handel ke konteks perangkat kontrol. Gunakan HDC ini untuk melakukan fungsi GDI apa pun.

rc

Jenis: RECT

Struktur RECT yang menjelaskan persegi panjang pembatas area yang digambar. Anggota ini hanya diinisialisasi oleh pemberitahuan CDDS_ITEMPREPAINT. Versi 5.80. Anggota ini juga diinisialisasi oleh pemberitahuan CDDS_PREPAINT.

dwItemSpec

Jenis: DWORD_PTR

Nomor item. Apa yang terkandung dalam anggota ini akan bergantung pada jenis kontrol yang mengirim pemberitahuan. Lihat referensi pemberitahuan NM_CUSTOMDRAW untuk kontrol tertentu untuk menentukan apa, jika ada, yang terkandung dalam anggota ini.

uItemState

Jenis: UINT

Status item saat ini. Nilai ini adalah kombinasi dari bendera berikut.

Nilai Makna
CDIS_CHECKED
Item dicentang.
CDIS_DEFAULT
Item dalam status defaultnya.
CDIS_DISABLED
Item dinonaktifkan.
CDIS_FOCUS
Item sedang dalam fokus.
CDIS_GRAYED
Item berwarna abu-abu.
CDIS_HOT
Item saat ini berada di bawah penunjuk ("panas").
CDIS_INDETERMINATE
Item dalam status tidak ditentukan.
CDIS_MARKED
Item ditandai. Arti dari hal ini ditentukan oleh implementasi.
CDIS_SELECTED
Item dipilih.
Catatan Bendera ini tidak berfungsi dengan benar untuk kontrol tampilan daftar yang digambar pemilik yang memiliki gaya LVS_SHOWSELALWAYS . Untuk kontrol ini, Anda dapat menentukan apakah item dipilih dengan menggunakan LVM_GETITEMSTATE (atau ListView_GetItemState) dan memeriksa bendera LVIS_SELECTED .
 
CDIS_SHOWKEYBOARDCUES

Versi 6.0.Item menunjukkan isi papan ketiknya.

Perhatikan bahwa Comctl32 versi 6 tidak dapat didistribusikan ulang. sistem operasi. Untuk menggunakan Comctl32.dll versi 6, tentukan dalam manifes. Untuk informasi selengkapnya tentang manifes, lihat Mengaktifkan Gaya Visual.

CDIS_NEARHOT
Item adalah bagian dari kontrol yang saat ini berada di bawah penunjuk mouse ("panas"), tetapi item tidak "panas" itu sendiri. Arti dari hal ini ditentukan oleh implementasi.
CDIS_OTHERSIDEHOT
Item adalah bagian dari tombol terpisah yang saat ini berada di bawah penunjuk mouse ("panas"), tetapi item tersebut tidak "panas" itu sendiri. Arti dari hal ini ditentukan oleh implementasi.
CDIS_DROPHILITED
Item saat ini adalah target penghilangan operasi seret dan letakkan.

lItemlParam

Jenis: LPARAM

Data item yang ditentukan aplikasi.

Keterangan

Nilai yang dikembalikan aplikasi Anda tergantung pada tahap gambar saat ini. Anggota dwDrawStage dari struktur NMCUSTOMDRAW terkait memegang nilai yang menentukan tahap gambar. Ketika anggota dwDrawStage sama dengan CDDS_PREPAINT dan CDDS_PREERASE, beberapa kontrol mengirim pesan CDDS_PREERASE terlebih dahulu dan mengharapkan nilai kembali menunjukkan pesan berikutnya mana yang akan dikirim. Untuk sampel kode yang mengilustrasikan status dan tahap gambar, lihat Menyesuaikan Tampilan Kontrol Menggunakan Gambar Kustom.

Persyaratan

   
Klien minimum yang didukung Windows Vista [hanya aplikasi desktop]
Server minimum yang didukung Windows Server 2003 [hanya aplikasi desktop]
Header commctrl.h