L’area di notifica risiede sulla destra della barra principale nel desktop di Windows, dove di solito appaiono le icone di programmi che risiedono in memoria, ma anche l’ora e la lingua della tastiera.
Per personalizzare le icone visibili possiamo aprire le proprietà della barra e scegliere Area di notifica. In questo articolo vedremo come registrare un’icona in quell’area, si tratta di un compito abbastanza semplice, qui faremo un esempio pratico in C++.
Per inserire un’icona nell’area di notifica di Windows occorre utilizzare una funzione, Shell_NotifyIcon, che presenta come argomento una struttura, NOTIFYICONDATA. Passiamo subito a vedere le variabili che compongono questa struttura:
Per informazioni complete sulla struttura potete leggere l’aiuto in linea di Microsoft per il Windows SDK ( in lingua Inglese). Vediamo un semplice esempio in C++ per mostrare un’icona nell’area di notifica, il codice va inserito dopo che l’applicazione è stata creata, quindi in MFC va inserita nella funzione InitInstance.
... NOTIFYICONDATA nid; ZeroMemory(&nid, sizeof(NOTIFYICONDATA)); nid.cbSize = NOTIFYICONDATA_V2_SIZE; nid.uFlags = NIF_TIP | NIF_ICON | NIF_MESSAGE; wcscpy_s(nid.szTip, _T("La mia notifica")); nid.hWnd = m_pMainWnd->m_hWnd; nid.uCallbackMessage = WM_MYNOTIFY; nid.hIcon = LoadIcon(MYICON); Shell_NotifyIcon(NIM_ADD, &nid); ZeroMemory(&nid, sizeof(NOTIFYICONDATA)); nid.cbSize = NOTIFYICONDATA_V2_SIZE; nid.hWnd = m_pMainWnd->m_hWnd; nid.uVersion = NOTIFYICON_VERSION; Shell_NotifyIcon(NIM_SETVERSION, &nid); ... Shell_NotifyIcon(NIM_DELETE, &nid); ...
Come potete notare occorre inserire la finestra a cui far arrivare le notifiche, il messaggio e l’icona, quindi inserire il tutto con NIM_ADD, NIM_SETVERSION serve per abilitare i nuovi tipi di tooltip, altro comando che si può dare è NIM_MODIFY per modificare i valori dei membri della struttura. Quando terminato occorre eliminare l’icona dall’area di notifica con NIM_DELETE.
Diamo ora uno sguardo al messaggio WM_MYNOTIFY da intercettare nel ciclo dei messaggi della finestra principale dell’applicazione:
... switch (lParam) { case WM_RBUTTONDOWN: // di solito si mostra il menu dei comandi break; case WM_LBUTTONDBLCLK: // di solito si compie il comando di default break; case NIN_BALLOONTIMEOUT: // operazione fatta ogni tot tempo break; case NIN_BALLOONSHOW: // quando appare il tooltip balloon break; case NIN_BALLOONHIDE: // quando scompare il tooltip balloon break; case NIN_BALLOONUSERCLICK: // quando l'utente fa clic sul tooltip balloon break; } ...
Come potete vedere non è molto complicato gestire le icone nell’area di notifica, se avete bisogno di altre informazioni non esitate a chiedere.
Sono arrivato alla convinzione che un abbonamento per tutti i miei software gestionali sia il…
MerciGest è un software per la gestione del magazzino completamente gratuito. Continua a leggere→
In ufficio può capitare di doversi allontanare dal proprio posto di lavoro, ecco che allora…
In questo articolo vedremo quando è più o meno utile togliere la corrente ad un…
Dopo la pausa invernale dovuta al lavoro che devo fare per sostentarmi, eccomi di nuovo…
Vediamo come eliminare i files direttamente da Windows senza utilizzare il cestino. Continua a leggere→