Bagikan melalui


Fungsi GetMenuState (winuser.h)

Mengambil bendera menu yang terkait dengan item menu yang ditentukan. Jika item menu membuka submenu, fungsi ini juga mengembalikan jumlah item dalam submenu.

Catatan Fungsi GetMenuState telah digantikan oleh GetMenuItemInfo. Namun, Anda masih dapat menggunakan GetMenuState, jika Anda tidak memerlukan salah satu fitur yang diperluas dari GetMenuItemInfo.
 

Sintaks

UINT GetMenuState(
  [in] HMENU hMenu,
  [in] UINT  uId,
  [in] UINT  uFlags
);

Parameter

[in] hMenu

Jenis: HMENU

Handel ke menu yang berisi item menu yang benderanya akan diambil.

[in] uId

Jenis: UINT

Item menu tempat bendera menu akan diambil, seperti yang ditentukan oleh parameter uFlags .

[in] uFlags

Jenis: UINT

Menunjukkan bagaimana parameter uId ditafsirkan. Parameter ini bisa menjadi salah satu nilai berikut.

Nilai Makna
MF_BYCOMMAND
0x00000000L
Menunjukkan bahwa parameter uId memberikan pengidentifikasi item menu. Bendera MF_BYCOMMAND adalah default jika bendera MF_BYCOMMAND atau MF_BYPOSITION tidak ditentukan.
MF_BYPOSITION
0x00000400L
Menunjukkan bahwa parameter uId memberikan posisi relatif berbasis nol dari item menu.

Mengembalikan nilai

Jenis: UINT

Jika item yang ditentukan tidak ada, nilai yang dikembalikan adalah -1.

Jika item menu membuka submenu, byte urutan rendah dari nilai pengembalian berisi bendera menu yang terkait dengan item, dan byte urutan tinggi berisi jumlah item dalam submenu yang dibuka oleh item.

Jika tidak, nilai yang dikembalikan adalah mask (Bitwise OR) dari bendera menu. Berikut ini adalah bendera menu yang terkait dengan item menu.

Mengembalikan kode/nilai Deskripsi
MF_CHECKED
0x00000008L
Tanda centang ditempatkan di samping item (hanya untuk menu drop-down, submenus, dan menu pintasan).
MF_DISABLED
0x00000002L
Item dinonaktifkan.
MF_GRAYED
0x00000001L
Item dinonaktifkan dan berwarna abu-abu.
MF_HILITE
0x00000080L
Item disorot.
MF_MENUBARBREAK
0x00000020L
Ini sama dengan bendera MF_MENUBREAK , kecuali untuk menu drop-down, submenus, dan menu pintasan, di mana kolom baru dipisahkan dari kolom lama dengan garis vertikal.
MF_MENUBREAK
0x00000040L
Item ditempatkan pada baris baru (untuk bilah menu) atau di kolom baru (untuk menu drop-down, submenus, dan menu pintasan) tanpa memisahkan kolom.
MF_OWNERDRAW
0x00000100L
Item digambar pemilik.
MF_POPUP
0x00000010L
Item menu adalah submenu.
MF_SEPARATOR
0x00000800L
Ada garis pembagian horizontal (hanya untuk menu drop-down, submenus, dan menu pintasan).

Keterangan

Dimungkinkan untuk menguji item untuk nilai bendera MF_ENABLED, MF_STRING, MF_UNCHECKED, atau MF_UNHILITE. Namun, karena nilai-nilai ini sama dengan nol, Anda harus menggunakan ekspresi untuk mengujinya.

Bendera Ekspresi untuk menguji bendera
MF_ENABLED ! (Flag&(MF_DISABLED | MF_GRAYED))
MF_STRING ! (Flag&(MF_BITMAP | MF_OWNERDRAW))
MF_UNCHECKED ! (Flag&MF_CHECKED)
MF_UNHILITE ! (Flag&HILITE)
 

Contoh

Misalnya, lihat Mensimulasikan Kotak Centang di Menu.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 2000 Professional [hanya aplikasi desktop]
Server minimum yang didukung Windows 2000 Server [hanya aplikasi desktop]
Target Platform Windows
Header winuser.h (sertakan Windows.h)
Pustaka User32.lib
DLL User32.dll
Set API ext-ms-win-ntuser-menu-l1-1-2 (diperkenalkan dalam Windows 10, versi 10.0.10240)

Lihat juga

Konseptual

GetMenu

GetMenuItemCount

GetMenuItemID

GetMenuItemInfo

Menu

Referensi