Fungsi TrackPopupMenuEx (winuser.h)
Menampilkan menu pintasan pada lokasi yang ditentukan dan melacak pilihan item pada menu pintasan. Menu pintasan dapat muncul di mana saja di layar.
Sintaks
BOOL TrackPopupMenuEx(
[in] HMENU hMenu,
[in] UINT uFlags,
[in] int x,
[in] int y,
[in] HWND hwnd,
[in, optional] LPTPMPARAMS lptpm
);
Parameter
[in] hMenu
Jenis: HMENU
Handel ke menu pintasan yang akan ditampilkan. Handel ini dapat diperoleh dengan memanggil fungsi CreatePopupMenu untuk membuat menu pintasan baru atau dengan memanggil fungsi GetSubMenu untuk mengambil handel ke submenu yang terkait dengan item menu yang ada.
[in] uFlags
Jenis: UINT
Menentukan opsi fungsi.
Gunakan salah satu bendera berikut untuk menentukan bagaimana fungsi memosisikan menu pintasan secara horizontal.
Gunakan salah satu bendera berikut untuk menentukan bagaimana fungsi memosisikan menu pintasan secara vertikal.
Gunakan bendera berikut untuk mengontrol penemuan pilihan pengguna tanpa harus menyiapkan jendela induk untuk menu.
Gunakan salah satu bendera berikut untuk menentukan tombol mouse mana yang dilacak menu pintasan.
Nilai | Makna |
---|---|
|
Pengguna dapat memilih item menu hanya dengan tombol kiri mouse. |
|
Pengguna dapat memilih item menu dengan tombol mouse kiri dan kanan. |
Gunakan kombinasi yang wajar dari bendera berikut untuk mengubah animasi menu. Misalnya, dengan memilih bendera horizontal dan vertikal, Anda dapat mencapai animasi diagonal.
Agar animasi terjadi, fungsi SystemParametersInfo harus mengatur SPI_SETMENUANIMATION. Selain itu, semua bendera TPM_*ANIMATION , kecuali TPM_NOANIMATION, diabaikan jika animasi pudar menu aktif. Untuk informasi selengkapnya, lihat bendera SPI_GETMENUFADE di SystemParametersInfo.
Gunakan bendera TPM_RECURSE untuk menampilkan menu saat menu lain sudah ditampilkan. Ini dimaksudkan untuk mendukung menu konteks dalam menu.
Gunakan salah satu bendera berikut untuk menentukan apakah akan mengakomodasi perataan horizontal atau vertikal.
Persegi panjang yang dikecualikan adalah bagian dari layar yang tidak boleh tumpang tindih oleh menu; ditentukan oleh parameter lptpm .
Untuk tata letak teks kanan-ke-kiri, gunakan TPM_LAYOUTRTL. Secara default, tata letak teks adalah kiri-ke-kanan.
[in] x
Jenis: int
Lokasi horizontal menu pintasan, dalam koordinat layar.
[in] y
Jenis: int
Lokasi vertikal menu pintasan, di koordinat layar.
[in] hwnd
Jenis: HWND
Handel ke jendela yang memiliki menu pintasan. Jendela ini menerima semua pesan dari menu. Jendela tidak menerima pesan WM_COMMAND dari menu hingga fungsi kembali. Jika Anda menentukan TPM_NONOTIFY dalam parameter fuFlags , fungsi tidak mengirim pesan ke jendela yang diidentifikasi oleh hwnd. Namun, Anda masih harus melewati handel jendela di hwnd. Ini bisa menjadi handel jendela apa pun dari aplikasi Anda.
[in, optional] lptpm
Jenis: LPTPMPARAMS
Penunjuk ke struktur TPMPARAMS yang menentukan area layar menu tidak boleh tumpang tindih. Parameter ini bisa NULL.
Mengembalikan nilai
Jenis: BOOL
Jika Anda menentukan TPM_RETURNCMD dalam parameter fuFlags , nilai yang dikembalikan adalah pengidentifikasi item menu item yang dipilih pengguna. Jika pengguna membatalkan menu tanpa membuat pilihan, atau jika terjadi kesalahan, nilai yang dikembalikan adalah nol.
Jika Anda tidak menentukan TPM_RETURNCMD dalam parameter fuFlags , nilai yang dikembalikan bukan nol jika fungsi berhasil dan nol jika gagal. Untuk mendapatkan informasi kesalahan yang diperluas, hubungi GetLastError.
Keterangan
Panggil GetSystemMetrics dengan SM_MENUDROPALIGNMENT untuk menentukan bendera perataan horizontal yang benar (TPM_LEFTALIGN atau TPM_RIGHTALIGN) dan/atau bendera arah animasi horizontal (TPM_HORPOSANIMATION atau TPM_HORNEGANIMATION) untuk diteruskan ke TrackPopupMenu atau TrackPopupMenuEx. Ini sangat penting untuk menciptakan pengalaman pengguna yang optimal, terutama saat mengembangkan aplikasi PC Tablet Microsoft.
Untuk menampilkan menu konteks untuk ikon pemberitahuan, jendela saat ini harus merupakan jendela latar depan sebelum aplikasi memanggil TrackPopupMenu atau TrackPopupMenuEx. Jika tidak, menu tidak akan hilang ketika pengguna mengklik di luar menu atau jendela yang membuat menu (jika terlihat). Jika jendela saat ini adalah jendela anak, Anda harus mengatur jendela induk (tingkat atas) sebagai jendela latar depan.
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-1 (diperkenalkan dalam Windows 8.1) |
Lihat juga
Konseptual
Referensi
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk