Bagikan melalui


Struktur DRAWITEMSTRUCT (winuser.h)

Menyediakan informasi yang digunakan jendela pemilik untuk menentukan cara melukis kontrol pemilik atau item menu. Jendela pemilik kontrol atau item menu yang digambar pemilik menerima penunjuk ke struktur ini sebagai parameter lParam dari pesan WM_DRAWITEM .

Sintaks

typedef struct tagDRAWITEMSTRUCT {
  UINT      CtlType;
  UINT      CtlID;
  UINT      itemID;
  UINT      itemAction;
  UINT      itemState;
  HWND      hwndItem;
  HDC       hDC;
  RECT      rcItem;
  ULONG_PTR itemData;
} DRAWITEMSTRUCT, *PDRAWITEMSTRUCT, *LPDRAWITEMSTRUCT;

Anggota

CtlType

Jenis: UINT

Jenis kontrol. Anggota ini bisa menjadi salah satu nilai berikut. Lihat Keterangan.

Nilai Makna
ODT_BUTTON
Tombol yang digambar pemilik
ODT_COMBOBOX
Kotak kombo yang digambar pemilik
ODT_LISTBOX
Kotak daftar yang digambar pemilik
ODT_LISTVIEW
Kontrol tampilan daftar
ODT_MENU
Item menu yang digambar pemilik
ODT_STATIC
Kontrol statis yang digambar pemilik
ODT_TAB
Kontrol tab

CtlID

Jenis: UINT

Pengidentifikasi kotak kombo, kotak daftar, tombol, atau kontrol statis. Anggota ini tidak digunakan untuk item menu.

itemID

Jenis: UINT

Pengidentifikasi item menu untuk item menu atau indeks item dalam kotak daftar atau kotak kombo. Untuk kotak daftar kosong atau kotak kombo, anggota ini bisa .-1 Ini memungkinkan aplikasi untuk hanya menggambar persegi panjang fokus pada koordinat yang ditentukan oleh anggota rcItem meskipun tidak ada item dalam kontrol. Ini menunjukkan kepada pengguna apakah kotak daftar atau kotak kombo memiliki fokus. Bagaimana bit diatur dalam anggota itemAction menentukan apakah persegi panjang akan digambar seolah-olah kotak daftar atau kotak kombo memiliki fokus.

itemAction

Jenis: UINT

Tindakan menggambar yang diperlukan. Anggota ini bisa menjadi satu atau beberapa nilai.

Nilai Makna
ODA_DRAWENTIRE
Seluruh kontrol perlu digambar.
ODA_FOCUS
Kontrol telah hilang atau mendapatkan fokus keyboard. Anggota itemState harus diperiksa untuk menentukan apakah kontrol memiliki fokus.
ODA_SELECT
Status pemilihan telah berubah. Anggota itemState harus diperiksa untuk menentukan status pilihan baru.

itemState

Jenis: UINT

Status visual item setelah tindakan menggambar saat ini terjadi. Anggota ini bisa menjadi kombinasi nilai yang diperlihatkan dalam tabel berikut ini.

Nilai Makna
ODS_CHECKED
Item menu akan diperiksa. Bit ini hanya digunakan dalam menu.
ODS_COMBOBOXEDIT
Gambar terjadi di bidang pilihan (edit kontrol) dari kotak kombo yang digambar pemilik.
ODS_DEFAULT
Item adalah item default.
ODS_DISABLED
Item akan digambar sebagai dinonaktifkan.
ODS_FOCUS
Item memiliki fokus keyboard.
ODS_GRAYED
Item akan berwarna abu-abu. Bit ini hanya digunakan dalam menu.
ODS_HOTLIGHT
Item sedang dilacak panas, yaitu, item akan disorot saat mouse berada di item.
ODS_INACTIVE
Item tidak aktif dan jendela yang terkait dengan menu tidak aktif.
ODS_NOACCEL
Kontrol digambar tanpa isti akselerator keyboard.
ODS_NOFOCUSRECT
Kontrol digambar tanpa isti indikator fokus.
ODS_SELECTED
Status item menu dipilih.

hwndItem

Jenis: HWND

Handel ke kontrol untuk kotak kombo, kotak daftar, tombol, dan kontrol statis. Untuk menu, anggota ini adalah handel ke menu yang berisi item.

hDC

Jenis: HDC

Handel ke konteks perangkat; konteks perangkat ini harus digunakan saat melakukan operasi menggambar pada kontrol.

rcItem

Jenis: RECT

Persegi panjang yang menentukan batas kontrol yang akan digambar. Persegi panjang ini berada dalam konteks perangkat yang ditentukan oleh anggota hDC . Sistem secara otomatis mengklip apa pun yang diambil jendela pemilik dalam konteks perangkat untuk kotak kombo, kotak daftar, dan tombol, tetapi tidak mengklip item menu. Saat menggambar item menu, jendela pemilik tidak boleh menggambar di luar batas persegi panjang yang ditentukan oleh anggota rcItem .

itemData

Jenis: ULONG_PTR

Nilai yang ditentukan aplikasi yang terkait dengan item menu. Untuk kontrol, parameter ini menentukan nilai yang terakhir ditetapkan ke kotak daftar atau kotak kombo menurut pesan LB_SETITEMDATA atau CB_SETITEMDATA . Jika kotak daftar atau kotak kombo memiliki gaya LBS_HASSTRINGS atau CBS_HASSTRINGS , nilai ini awalnya nol. Jika tidak, nilai ini awalnya adalah nilai yang diteruskan ke kotak daftar atau kotak kombo di parameter lParam dari salah satu pesan berikut:

Jika CtlTypeODT_BUTTON atau ODT_STATIC, itemData adalah nol.

Keterangan

Beberapa jenis kontrol, seperti bilah status, tidak mengatur nilai CtlType.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows Vista [hanya aplikasi desktop]
Server minimum yang didukung Windows Server 2003 [hanya aplikasi desktop]
Header winuser.h (sertakan Windows.h)

Lihat juga

CB_ADDSTRING

CB_INSERTSTRING

CB_SETITEMDATA

LB_ADDSTRING

LB_INSERTSTRING

LB_SETITEMDATA

Referensi

WM_DRAWITEM