Fungsi ModifyMenuA (winuser.h)
Mengubah item menu yang sudah ada. Fungsi ini digunakan untuk menentukan konten, tampilan, dan perilaku item menu.
Sintaks
BOOL ModifyMenuA(
[in] HMENU hMnu,
[in] UINT uPosition,
[in] UINT uFlags,
[in] UINT_PTR uIDNewItem,
[in, optional] LPCSTR lpNewItem
);
Parameter
[in] hMnu
Jenis: HMENU
Handel ke menu yang akan diubah.
[in] uPosition
Jenis: UINT
Item menu yang akan diubah, seperti yang ditentukan oleh parameter uFlags .
[in] uFlags
Jenis: UINT
Mengontrol interpretasi parameter uPosisi dan konten, tampilan, dan perilaku item menu. Parameter ini harus menyertakan salah satu nilai yang diperlukan berikut ini.
Parameter juga harus menyertakan setidaknya salah satu nilai berikut.
Nilai | Makna |
---|---|
|
Menggunakan bitmap sebagai item menu. Parameter lpNewItem berisi handel ke bitmap. |
|
Places tanda centang di samping item. Jika aplikasi Anda menyediakan bitmap tanda centang (lihat fungsi SetMenuItemBitmaps ), bendera ini menampilkan bitmap yang dipilih di samping item menu. |
|
Menonaktifkan item menu sehingga tidak dapat dipilih, tetapi bendera ini tidak berwarna abu-abu. |
|
Memfungsikan item menu agar bisa dipilih dan memulihkannya dari status abu-abu. |
|
Nonaktifkan item menu dan abu-abu sehingga tidak dapat dipilih. |
|
Fungsinya sama dengan bendera MF_MENUBREAK untuk bilah menu. Untuk menu drop-down, submenu, atau menu pintasan, kolom baru dipisahkan dari kolom lama dengan garis vertikal. |
|
Places item pada baris baru (untuk bilah menu) atau di kolom baru (untuk menu drop-down, submenu, atau menu pintasan) tanpa memisahkan kolom. |
|
Menentukan bahwa item tersebut adalah item yang digambar pemilik. Sebelum menu ditampilkan untuk pertama kalinya, jendela yang memiliki menu menerima pesan WM_MEASUREITEM untuk mengambil lebar dan tinggi item menu. Pesan WM_DRAWITEM kemudian dikirim ke prosedur jendela jendela pemilik setiap kali tampilan item menu harus diperbarui. |
|
Menentukan bahwa item menu membuka menu drop-down atau submenu. Parameter uIDNewItem menentukan handel ke menu drop-down atau submenu. Bendera ini digunakan untuk menambahkan nama menu ke bilah menu atau item menu yang membuka submenu ke menu drop-down, submenu, atau menu pintasan. |
|
Menggambar garis pembagian horizontal. Bendera ini hanya digunakan di menu drop-down, submenu, atau menu pintasan. Garis tidak dapat berwarna abu-abu, dinonaktifkan, atau disorot. Parameter lpNewItem dan uIDNewItem diabaikan. |
|
Menentukan bahwa item menu adalah string teks; parameter lpNewItem adalah penunjuk ke string. |
|
Tidak menempatkan tanda centang di samping item (default). Jika aplikasi Anda menyediakan bitmap tanda centang (lihat fungsi SetMenuItemBitmaps ), bendera ini menampilkan bitmap yang jelas di samping item menu. |
[in] uIDNewItem
Jenis: UINT_PTR
Pengidentifikasi item menu yang dimodifikasi atau, jika parameter uFlags memiliki set bendera MF_POPUP , handel ke menu drop-down atau submenu.
[in, optional] lpNewItem
Jenis: LPCTSTR
Isi item menu yang diubah. Interpretasi parameter ini tergantung pada apakah parameter uFlags mencakup bendera MF_BITMAP, MF_OWNERDRAW, atau MF_STRING .
Nilai | Makna |
---|---|
|
Handel bitmap. |
|
Nilai yang disediakan oleh aplikasi yang digunakan untuk mempertahankan data tambahan yang terkait dengan item menu. Nilai berada dalam anggota itemData dari struktur yang diacu oleh parameter lParam dari pesan WM_MEASUREITEM atau WM_DRAWITEM yang dikirim saat item menu dibuat atau tampilannya diperbarui. |
|
Penunjuk ke string yang dihentikan null (default). |
Nilai kembali
Jenis: BOOL
Jika fungsi berhasil, nilai yang dikembalikan bukan nol.
Jika fungsi gagal, nilai yang dikembalikan adalah nol. Untuk mendapatkan informasi kesalahan yang diperluas, hubungi GetLastError.
Keterangan
Jika ModifyMenu mengganti item menu yang membuka menu drop-down atau submenu, fungsi akan menghancurkan menu drop-down atau submenu lama dan membebaskan memori yang digunakan olehnya.
Agar akselerator keyboard berfungsi dengan bitmap atau item menu yang digambar pemilik, pemilik menu harus memproses pesan WM_MENUCHAR . Lihat Menu Yang Digambar Pemilik dan Pesan WM_MENUCHAR untuk informasi selengkapnya.
Aplikasi harus memanggil fungsi DrawMenuBar setiap kali menu berubah, apakah menu berada di jendela yang ditampilkan. Untuk mengubah atribut item menu yang ada, jauh lebih cepat menggunakan fungsi CheckMenuItem dan EnableMenuItem .
Grup bendera berikut tidak dapat digunakan bersama-sama:
- MF_BYCOMMAND dan MF_BYPOSITION
- MF_DISABLED, MF_ENABLED dan MF_GRAYED
- MF_BITMAP, MF_STRING, MF_OWNERDRAW, dan MF_SEPARATOR
- MF_MENUBARBREAK dan MF_MENUBREAK
- MF_CHECKED dan MF_UNCHECKED
Contoh
Misalnya, lihat Mengatur Font untuk Menu-Item String Teks.
Catatan
Header winuser.h mendefinisikan ModifikasiMenu sebagai alias yang secara otomatis memilih versi ANSI atau Unicode dari fungsi ini berdasarkan definisi konstanta pra-prosesor UNICODE. Mencampur penggunaan alias encoding-netral dengan kode yang tidak mengodekan-netral dapat menyebabkan ketidakcocokan yang mengakibatkan kesalahan kompilasi atau runtime. Untuk informasi selengkapnya, lihat Konvensi untuk Prototipe Fungsi.
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 (termasuk Windows.h) |
Pustaka | User32.lib |
DLL | User32.dll |
Set API | ext-ms-win-ntuser-menu-l1-1-3 (diperkenalkan dalam Windows 10, versi 10.0.14393) |
Lihat juga
Konseptual
Referensi