Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionBOOL AddIcone(HINSTANCE hInst, HWND hWnd, UINT id, LPTSTR IconName, char *infobulle) { BOOL res; NOTIFYICONDATA trid; trid.cbSize = sizeof(NOTIFYICONDATA); trid.hWnd = hWnd; trid.uID = id; trid.uFlags = NIF_MESSAGE | NIF_ICON | NIF_TIP; trid.uCallbackMessage = WM_TRAY_ICONE; trid.hIcon = LoadIcon(hInst, IconName); if(infobulle) { lstrcpyn(trid.szTip, infobulle, sizeof(trid.szTip)); } else { trid.szTip[0] = '\0'; res = Shell_NotifyIcon(NIM_ADD, &trid); return res; }
if ( infobulle ) lstrcpyn(trid.szTip, infobulle, sizeof(trid.szTip)); else trid.szTip[0] = '\0';
#include <windows.h> #include "resource.h" #define WM_TRAY_ICONE (WM_USER+1) HINSTANCE hInst; BOOL AffichageMenu = FALSE; BOOL AddIcone(HINSTANCE hInst, HWND hWnd, UINT id, LPTSTR IconName, char *infobulle) { BOOL res; NOTIFYICONDATA trid; trid.cbSize = sizeof(NOTIFYICONDATA); trid.hWnd = hWnd; trid.uID = id; trid.uFlags = NIF_MESSAGE | NIF_ICON | NIF_TIP; trid.uCallbackMessage = WM_TRAY_ICONE; trid.hIcon = LoadIcon(hInst, IconName); if (infobulle) lstrcpyn(trid.szTip, infobulle, sizeof(trid.szTip)); else trid.szTip[0] = '\0'; res = Shell_NotifyIcon(NIM_ADD, &trid); return res; } BOOL RetIcone(HWND hWnd, UINT id) { BOOL res; NOTIFYICONDATA trid; trid.cbSize = sizeof(NOTIFYICONDATA); trid.hWnd = hWnd; trid.uID = id; res = Shell_NotifyIcon(NIM_DELETE, &trid); return res; } LRESULT CALLBACK DlgProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam) { switch(msg) { case WM_INITDIALOG: AddIcone(hInst, hWnd, 2, MAKEINTRESOURCE(IDI_ICON), "Util MSN"); case WM_COMMAND: { switch(LOWORD(wParam)) { case IDCANCEL: { RetIcone(hWnd, 2); EndDialog(hWnd, FALSE); return TRUE; } case ID_TRAY_ITEM_1: { MessageBox(hWnd, "Util MSN par Jérémy Decool", "Information", MB_OK | MB_ICONINFORMATION); } case ID_TRAY_ITEM_2: { SendMessage(hWnd, WM_COMMAND, IDCANCEL, NULL); } } case WM_TRAY_ICONE: { if(AffichageMenu || (lParam != WM_RBUTTONUP && lParam != WM_LBUTTONDBLCLK)) return FALSE; HMENU menu = LoadMenu(hInst, MAKEINTRESOURCE(IDR_MENUTRAY)); if(!menu) return FALSE; HMENU submenu = GetSubMenu(menu, 0); if(!submenu) return FALSE; if(lParam == WM_RBUTTONUP) { AffichageMenu = TRUE; POINT mouse; GetCursorPos(&mouse); SetMenuDefaultItem(submenu, ID_TRAY_ITEM_1, FALSE); SetForegroundWindow(hWnd); TrackPopupMenu(submenu, TPM_RETURNCMD || TPM_RIGHTALIGN, mouse.x, mouse.y, 0, hWnd, NULL); DestroyMenu(submenu); DestroyMenu(menu); return TRUE; } else { SendMessage(hWnd, WM_COMMAND, ID_TRAY_ITEM_1, NULL); return TRUE; } } default: return FALSE; } return TRUE; } int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { hInst = hInstance; DialogBox(hInstance, MAKEINTRESOURCE(IDD_MAIN), NULL, (DLGPROC)DlgProc); return 0; }
#include <windows.h> #include "resource.h" #define WM_TRAY_ICONE (WM_USER+1) HINSTANCE hInst; BOOL AffichageMenu = FALSE; BOOL AddIcone(HINSTANCE hInst, HWND hWnd, UINT id, LPTSTR IconName, char *infobulle) { BOOL res; NOTIFYICONDATA trid; trid.cbSize = sizeof(NOTIFYICONDATA); trid.hWnd = hWnd; trid.uID = id; trid.uFlags = NIF_MESSAGE | NIF_ICON | NIF_TIP; trid.uCallbackMessage = WM_TRAY_ICONE; trid.hIcon = LoadIcon(hInst, IconName); if (infobulle) lstrcpyn(trid.szTip, infobulle, sizeof(trid.szTip)); else trid.szTip[0] = '\0'; res = Shell_NotifyIcon(NIM_ADD, &trid); return res; } BOOL RetIcone(HWND hWnd, UINT id) { BOOL res; NOTIFYICONDATA trid; trid.cbSize = sizeof(NOTIFYICONDATA); trid.hWnd = hWnd; trid.uID = id; res = Shell_NotifyIcon(NIM_DELETE, &trid); return res; } LRESULT CALLBACK DlgProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam) { switch(msg) { case WM_INITDIALOG: AddIcone(hInst, hWnd, 2, MAKEINTRESOURCE(IDI_ICON), "Util MSN"); break; case WM_COMMAND: { switch(LOWORD(wParam)) { case IDCANCEL: { RetIcone(hWnd, 2); EndDialog(hWnd, FALSE); return TRUE; } case ID_TRAY_ITEM_1: { MessageBox(hWnd, "Util MSN par Jérémy Decool", "Information", MB_OK | MB_ICONINFORMATION); } case ID_TRAY_ITEM_2: { SendMessage(hWnd, WM_COMMAND, IDCANCEL, 0); } } } case WM_TRAY_ICONE: { if(AffichageMenu || (lParam != WM_RBUTTONUP && lParam != WM_LBUTTONDBLCLK)) return FALSE; HMENU menu = LoadMenu(hInst, MAKEINTRESOURCE(IDR_MENUTRAY)); if(!menu) return FALSE; HMENU submenu = GetSubMenu(menu, 0); if(!submenu) return FALSE; if(lParam == WM_RBUTTONUP) { AffichageMenu = TRUE; POINT mouse; GetCursorPos(&mouse); SetMenuDefaultItem(submenu, ID_TRAY_ITEM_1, FALSE); SetForegroundWindow(hWnd); TrackPopupMenu(submenu, TPM_RETURNCMD || TPM_RIGHTALIGN, mouse.x, mouse.y, 0, hWnd, NULL); DestroyMenu(submenu); DestroyMenu(menu); return TRUE; } else { SendMessage(hWnd, WM_COMMAND, ID_TRAY_ITEM_1, 0); return TRUE; } } default: return FALSE; } return TRUE; } int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { hInst = hInstance; DialogBox(hInstance, MAKEINTRESOURCE(IDD_MAIN), NULL, (DLGPROC)DlgProc); return 0; }