Bagikan melalui


fungsi Shell_NotifyIconA (shellapi.h)

Mengirim pesan ke area status bilah tugas.

Sintaks

BOOL Shell_NotifyIconA(
  [in] DWORD            dwMessage,
  [in] PNOTIFYICONDATAA lpData
);

Parameter

[in] dwMessage

Jenis: DWORD

Nilai yang menentukan tindakan yang akan diambil oleh fungsi ini. Ini bisa memiliki salah satu nilai berikut:

NIM_ADD (0x00000000)

0x00000000. Menambahkan ikon ke area status. Ikon diberi pengidentifikasi dalam struktur NOTIFYICONDATA yang ditujukkan oleh lpdata—baik melalui anggota uID atau guidItem-nya . Pengidentifikasi ini digunakan dalam panggilan berikutnya ke Shell_NotifyIcon untuk melakukan tindakan selanjutnya pada ikon.

NIM_MODIFY (0x00000001)

0x00000001. Memodifikasi ikon di area status. Struktur NOTIFYICONDATA yang diacu oleh lpdata menggunakan ID yang awalnya ditetapkan ke ikon ketika ditambahkan ke area pemberitahuan (NIM_ADD) untuk mengidentifikasi ikon yang akan dimodifikasi.

NIM_DELETE (0x00000002)

0x00000002. Menghapus ikon dari area status. Struktur NOTIFYICONDATA yang ditunjukkan oleh lpdata menggunakan ID yang awalnya ditetapkan ke ikon ketika ditambahkan ke area pemberitahuan (NIM_ADD) untuk mengidentifikasi ikon yang akan dihapus.

NIM_SETFOCUS (0x00000003)

0x00000003. Shell32.dll versi 5.0 dan yang lebih baru saja. Mengembalikan fokus ke area pemberitahuan taskbar. Ikon area pemberitahuan harus menggunakan pesan ini ketika mereka telah menyelesaikan operasi UI mereka. Misalnya, jika ikon menampilkan menu pintasan, tetapi pengguna menekan ESC untuk membatalkannya, gunakan NIM_SETFOCUS untuk mengembalikan fokus ke area pemberitahuan.

NIM_SETVERSION (0x00000004)

0x00000004. Shell32.dll versi 5.0 dan yang lebih baru saja. Menginstruksikan area pemberitahuan untuk berperilaku sesuai dengan nomor versi yang ditentukan dalam anggota uVersion struktur yang ditujukkan oleh lpdata. Nomor versi menentukan anggota mana yang dikenali.

NIM_SETVERSION harus dipanggil setiap kali ikon area pemberitahuan ditambahkan (NIM_ADD). Ini tidak perlu dipanggil dengan NIM_MODIFY. Pengaturan versi tidak bertahan setelah pengguna keluar.

Untuk detailnya, lihat bagian Keterangan.

[in] lpData

Jenis: PNOTIFYICONDATA

Penunjuk ke struktur NOTIFYICONDATA . Konten struktur tergantung pada nilai dwMessage. Ini dapat menentukan ikon untuk ditambahkan ke area pemberitahuan, menyebabkan ikon tersebut menampilkan pemberitahuan, atau mengidentifikasi ikon untuk memodifikasi atau menghapus.

Nilai kembali

Jenis: BOOL

Mengembalikan TRUE jika berhasil, atau FALSE sebaliknya. Jika dwMessage diatur ke NIM_SETVERSION, fungsi mengembalikan TRUE jika versi berhasil diubah, atau FALSE jika versi yang diminta tidak didukung.

Keterangan

Pada Windows 2000 (Shell32.dll versi 5.0), jika Anda mengatur anggota uVersion dari struktur NOTIFYICONDATA yang diarahkan oleh lpdata ke NOTIFYICON_VERSION_4 atau lebih tinggi, Shell_NotifyIcon peristiwa mouse dan keyboard ditangani secara berbeda dari di versi Windows sebelumnya. Perbedaannya meliputi hal-hal berikut:

  • Jika pengguna memilih menu pintasan ikon pemberitahuan dengan keyboard, Shell sekarang mengirim pesan WM_CONTEXTMENU kepada aplikasi terkait. Versi sebelumnya mengirim pesan WM_RBUTTONDOWN dan WM_RBUTTONUP .
  • Jika pengguna memilih ikon pemberitahuan dengan keyboard dan mengaktifkannya dengan tombol SPACEBAR atau ENTER, Shell versi 5.0 mengirimkan aplikasi terkait pemberitahuan NIN_KEYSELECT. Versi sebelumnya mengirim pesan WM_RBUTTONDOWN dan WM_RBUTTONUP .
  • Jika pengguna memilih ikon pemberitahuan dengan mouse dan mengaktifkannya dengan tombol ENTER, Shell sekarang mengirim aplikasi terkait pemberitahuan NIN_SELECT. Versi sebelumnya mengirim pesan WM_RBUTTONDOWN dan WM_RBUTTONUP .
Pada Windows XP (Shell32.dll versi 6.0), jika pengguna meneruskan penunjuk mouse ke ikon yang terkait dengan pemberitahuan balon, Shell mengirim pesan berikut:
  • NIN_BALLOONSHOW. Dikirim ketika balon ditampilkan (balon diantrekan).
  • NIN_BALLOONHIDE. Dikirim ketika balon menghilang. Misalnya, saat ikon dihapus. Pesan ini tidak dikirim jika balon ditutup karena waktu habis atau jika pengguna mengklik mouse.

    Pada Windows 7, NIN_BALLOONHIDE juga dikirim ketika pemberitahuan dengan set bendera NIIF_RESPECT_QUIET_TIME mencoba ditampilkan selama waktu tenang (jam pertama pengguna di komputer baru). Dalam hal ini, balon tidak pernah ditampilkan sama sekali.

  • NIN_BALLOONTIMEOUT. Dikirim ketika balon diberhentikan karena waktu habis.
  • NIN_BALLOONUSERCLICK. Dikirim ketika balon dimatikan karena pengguna mengklik mouse.
Selain pesan tersebut, pada Windows Vista (Shell32.dll versi 6.0.6), jika pengguna meneruskan penunjuk mouse ke ikon di mana pemberitahuan balon dikaitkan, Windows Vista Shell juga menambahkan pesan berikut:
  • NIN_POPUPOPEN. Dikirim saat pengguna mengarahkan kursor ke ikon untuk menunjukkan bahwa UI pop-up yang lebih kaya harus digunakan sebagai pengganti tipsalat tekstual standar.
  • NIN_POPUPCLOSE. Dikirim saat kursor tidak lagi mengarahkan kursor ke ikon untuk menunjukkan bahwa UI pop-up kaya harus ditutup.
Terlepas dari versi sistem operasi, Anda dapat memilih cara mana Shell harus berperilaku dengan memanggil Shell_NotifyIcon dengan dwMessage diatur ke NIM_SETVERSION. Atur anggota uVersion dari struktur NOTIFYICONDATA yang ditunjukkan oleh lpdata untuk menunjukkan apakah Anda menginginkan perilaku Windows 2000, Windows Vista, atau pra-versi 5.0 (Windows 95).
Catatan Pesan yang dibahas di atas bukan pesan Windows konvensional. Mereka dikirim sebagai nilai lParam dari pesan yang ditentukan aplikasi yang ditentukan dalam anggota uCallbackMessage dari struktur NOTIFYICONDATA yang ditunjukkan oleh lpdata, ketika Shell_NotifyIcon dipanggil dengan bendera NIM_ADD yang diatur dalam dwMessage.
 
Pada Windows XP Service Pack 2 (SP2), ikon kustom dapat ditampilkan di balon pemberitahuan. Ini memungkinkan proses panggilan untuk menyesuaikan pemberitahuan di luar opsi info, peringatan, dan kesalahan yang tersedia sebelumnya, dan membedakannya dari jenis pemberitahuan lain untuk pengguna.

Catatan

Header shellapi.h mendefinisikan Shell_NotifyIcon 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 XP [hanya aplikasi desktop]
Server minimum yang didukung Windows 2000 Server [hanya aplikasi desktop]
Target Platform Windows
Header shellapi.h
Pustaka Shell32.lib
DLL Shell32.dll (versi 4.0 atau yang lebih baru)
Set API ext-ms-win-shell-shell32-l1-2-1 (diperkenalkan dalam Windows 10, versi 10.0.10240)

Lihat juga

Pemberitahuan dan Area Pemberitahuan