Funzione Shell_NotifyIconW (shellapi.h)
Invia un messaggio all'area di stato della barra delle applicazioni.
Sintassi
BOOL Shell_NotifyIconW(
[in] DWORD dwMessage,
[in] PNOTIFYICONDATAW lpData
);
Parametri
[in] dwMessage
Tipo: DWORD
Valore che specifica l'azione da eseguire da questa funzione. Può avere uno dei valori seguenti:
NIM_ADD (0x00000000)
0x00000000. Aggiunge un'icona all'area di stato. L'icona viene assegnato un identificatore nella struttura NOTIFYICONDATA a cui fa riferimento lpdata, tramite il relativo membro uID o guidItem . Questo identificatore viene usato nelle chiamate successive a Shell_NotifyIcon per eseguire azioni successive sull'icona.
NIM_MODIFY (0x00000001)
0x00000001. Modifica un'icona nell'area di stato. La struttura NOTIFYICONDATA puntata da lpdata usa l'ID originariamente assegnato all'icona quando è stata aggiunta all'area di notifica (NIM_ADD) per identificare l'icona da modificare.
NIM_DELETE (0x00000002)
0x00000002. Elimina un'icona dall'area di stato. La struttura NOTIFYICONDATA puntata da lpdata usa l'ID originariamente assegnato all'icona quando è stato aggiunto all'area di notifica (NIM_ADD) per identificare l'icona da eliminare.
NIM_SETFOCUS (0x00000003)
0x00000003. Shell32.dll versione 5.0 e successiva solo. Restituisce lo stato attivo nell'area di notifica della barra delle applicazioni. Le icone dell'area di notifica devono usare questo messaggio al termine dell'operazione dell'interfaccia utente. Ad esempio, se l'icona visualizza un menu di scelta rapida, ma l'utente preme ESC per annullarlo, usare NIM_SETFOCUS per restituire lo stato attivo all'area di notifica.
NIM_SETVERSION (0x00000004)
0x00000004. Shell32.dll versione 5.0 e successiva solo. Indica all'area di notifica di comportarsi in base al numero di versione specificato nel membro uVersion della struttura a cui punta lpdata. Il numero di versione specifica i membri riconosciuti.
NIM_SETVERSION deve essere chiamato ogni volta che viene aggiunta un'icona dell'area di notifica (NIM_ADD). Non è necessario chiamare con NIM_MODIFY. L'impostazione della versione non viene mantenuta una volta che un utente si disconnette.
Per informazioni dettagliate, vedere la sezione Osservazioni.
[in] lpData
Tipo: PNOTIFYICONDATA
Puntatore a una struttura NOTIFYICONDATA . Il contenuto della struttura dipende dal valore di dwMessage. Può definire un'icona da aggiungere all'area di notifica, causare la visualizzazione di una notifica o l'identificazione di un'icona da modificare o eliminare.
Valore restituito
Tipo: BOOL
Restituisce TRUE se ha esito positivo o FALSE in caso contrario. Se dwMessage è impostato su NIM_SETVERSION, la funzione restituisce TRUE se la versione è stata modificata correttamente o FALSE se la versione richiesta non è supportata.
Commenti
A partire da Windows 2000 (Shell32.dll versione 5.0), se si imposta il membro uVersion della struttura NOTIFYICONDATA puntato a lpdata su NOTIFYICON_VERSION_4 o superiore Shell_NotifyIcon , gli eventi del mouse e della tastiera vengono gestiti in modo diverso rispetto alle versioni precedenti di Windows. Le differenze includono quanto segue:
- Se un utente seleziona un menu di scelta rapida dell'icona di notifica con la tastiera, Shell invia ora all'applicazione associata un messaggio di WM_CONTEXTMENU . Le versioni precedenti inviano messaggi di WM_RBUTTONDOWN e WM_RBUTTONUP .
- Se un utente seleziona un'icona di notifica con la tastiera e la attiva con il tasto SPACEBAR o INVIO, shell versione 5.0 invia all'applicazione associata una notifica NIN_KEYSELECT. Le versioni precedenti inviano messaggi di WM_RBUTTONDOWN e WM_RBUTTONUP .
- Se un utente seleziona un'icona di notifica con il mouse e la attiva con la chiave INVIO, shell invia ora all'applicazione associata una notifica NIN_SELECT. Le versioni precedenti inviano messaggi di WM_RBUTTONDOWN e WM_RBUTTONUP .
- NIN_BALLOONSHOW. Inviato quando viene visualizzato il palloncino (i palloncini vengono accodati).
-
NIN_BALLOONHIDE. Inviato quando il palloncino scompare. Ad esempio, quando l'icona viene eliminata. Questo messaggio non viene inviato se il palloncino viene ignorato a causa di un timeout o se l'utente fa clic sul mouse.
A partire da Windows 7, NIN_BALLOONHIDE viene inviato anche quando una notifica con il set di flag NIIF_RESPECT_QUIET_TIME tenta di visualizzare durante l'ora di silenzio (la prima ora di un utente in un nuovo computer). In questo caso, il palloncino non viene mai visualizzato.
- NIN_BALLOONTIMEOUT. Inviato quando il palloncino viene ignorato a causa di un timeout.
- NIN_BALLOONUSERCLICK. Inviato quando il palloncino viene ignorato perché l'utente ha fatto clic sul mouse.
- NIN_POPUPOPEN. Inviato quando l'utente passa il puntatore del mouse su un'icona per indicare che l'interfaccia utente popup più avanzata deve essere usata al posto di una descrizione comando testuale standard.
- NIN_POPUPCLOSE. Inviato quando un cursore non passa più sopra un'icona per indicare che l'interfaccia utente popup avanzata deve essere chiusa.
Nota
L'intestazione shellapi.h definisce Shell_NotifyIcon come alias che seleziona automaticamente la versione ANSI o Unicode di questa funzione in base alla definizione della costante preprocessore UNICODE. La combinazione dell'utilizzo dell'alias di codifica neutrale con il codice che non è neutrale dalla codifica può causare errori di corrispondenza che causano errori di compilazione o runtime. Per altre informazioni, vedere Convenzioni per i prototipi di funzione.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows XP [solo app desktop] |
Server minimo supportato | Windows 2000 Server [solo app desktop] |
Piattaforma di destinazione | Windows |
Intestazione | shellapi.h |
Libreria | Shell32.lib |
DLL | Shell32.dll (versione 4.0 o successiva) |
Set di API | ext-ms-win-shell-shell32-l1-2-1 (introdotto in Windows 10, versione 10.0.10240) |