LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { static const UINT WM_TASKBARCREATED = ::RegisterWindowMessage(L"TaskbarCreated"); int nID; switch (message) { case WM_TASKBARNOTIFY: if (lParam == WM_LBUTTONUP) { ShowWindow(hConsole, !IsWindowVisible(hConsole)); SetForegroundWindow(hConsole); } else if (lParam == WM_RBUTTONUP) { SetForegroundWindow(hWnd); ShowPopupMenu(); } break; case WM_COMMAND: nID = LOWORD(wParam); if (nID == WM_TASKBARNOTIFY_MENUITEM_SHOW) { ShowWindow(hConsole, SW_SHOW); SetForegroundWindow(hConsole); } else if (nID == WM_TASKBARNOTIFY_MENUITEM_HIDE) { ShowWindow(hConsole, SW_HIDE); } if (nID == WM_TASKBARNOTIFY_MENUITEM_RELOAD) { ReloadCmdline(szSubTitleLast, szSubPathLast, szSubCommandLast); } else if (nID == WM_TASKBARNOTIFY_MENUITEM_ABOUT) { MessageBoxW(hWnd, szTooltip, szWindowClass, 0); } else if (nID == WM_TASKBARNOTIFY_MENUITEM_EXIT) { DeleteTrayIcon(); PostMessage(hConsole, WM_CLOSE, 0, 0); } else if (WM_TASKBARNOTIFY_MENUITEM_SUBMENULIST_BASE <= nID && nID <= WM_TASKBARNOTIFY_MENUITEM_SUBMENULIST_BASE+sizeof(lpSubMenuTitleList)/sizeof(lpSubMenuTitleList[0])) { WCHAR *szSubMenu = lpSubMenuTitleList[nID-WM_TASKBARNOTIFY_MENUITEM_SUBMENULIST_BASE]; WCHAR *szSubCmd = lpSubMenuCmdList[nID-WM_TASKBARNOTIFY_MENUITEM_SUBMENULIST_BASE]; WCHAR *szSubPath = lpSubMenuPathList[nID-WM_TASKBARNOTIFY_MENUITEM_SUBMENULIST_BASE]; ReloadCmdline(szSubMenu, szSubPath, szSubCmd); ShowTrayIcon(szSubMenu, NIM_MODIFY); } break; case WM_CLOSE: DeleteTrayIcon(); PostQuitMessage(0); break; case WM_DESTROY: PostQuitMessage(0); break; default: if (message == WM_TASKBARCREATED) { ShowTrayIcon(NULL, NIM_ADD); break; } return DefWindowProc(hWnd, message, wParam, lParam); } return 0; }
void CRelaxReminderDlg::QuitProcess() { SaveStatisticsToIniFile(); DeleteTrayIcon(); DllExport_UninstallKeyboardHook(); DllExport_UninstallMouseHook(); }
// WM_TRAYICON_MSG 핸들러 LRESULT COutputDialog::TrayIconMsg(WPARAM wParam, LPARAM lParam) { // 등록된 TrayIcon 클릭하면 Show.... if(lParam == WM_LBUTTONDBLCLK) { ShowWindow(SW_SHOW); DeleteTrayIcon(); } return 0; }
void GUIProQuit() { myUnregisterHotKey(IDH_HOTKEY_VOL_UP); myUnregisterHotKey(IDH_HOTKEY_VOL_DOWN); uninstallHookMouse(); unloadVolumeInterface(); DeleteTrayIcon(g_hwndMain, IDI_MAIN_ICON); PostQuitMessage(0); }
void CRelaxReminderDlg::OnMenuTrayIcon() { // TODO: Add your command handler code here if (m_bTrayIconVisible) { DeleteTrayIcon(); } else { ShowTrayIcon(); } }
LRESULT CEzShortcutDlg::OnTrayIconMsg(WPARAM wParam, LPARAM lParam) { UNREFERENCED_PARAMETER(wParam); if(lParam == WM_LBUTTONDBLCLK) { DeleteTrayIcon(); } else if(lParam == WM_RBUTTONDOWN) { m_Popup.Show(); } return 0; }
void _UnflipFromTray(UINT i, UINT uCmd) { if (MyIsHungAppWindow(g_pWti[i].hwnd)) return; DeleteTrayIcon(g_hwndMain, g_pWti[i].uID); if (IsWindow(g_pWti[i].hwnd)) { RECT rcTray = { 0 }; if (g_pWti[i].fAnimate && uCmd == SC_RESTORE) { ANIMATIONINFO ai; ai.cbSize = sizeof(ANIMATIONINFO); ai.iMinAnimate = FALSE; SystemParametersInfo(SPI_GETANIMATION, sizeof(ANIMATIONINFO), &ai, FALSE); if (ai.iMinAnimate) { HWND hwndTray = FindTrayToolbarWindow(); if (hwndTray) { GetWindowRect(hwndTray, &rcTray); rcTray.bottom = rcTray.top; rcTray.right = rcTray.left; #pragma FIX_LATER(tray animation <-> taskbar pos) KillTimer(g_hwndMain, TIMER_SETANIMATION); ai.iMinAnimate = 0; SystemParametersInfo(SPI_SETANIMATION, sizeof(ANIMATIONINFO), &ai, FALSE); SetTimer(g_hwndMain, TIMER_SETANIMATION, 500, NULL); DrawAnimatedRects(g_hwndMain, IDANI_CAPTION, &rcTray, &g_pWti[i].rcWnd); } } } //ShowWindow(g_pWti[i].hwnd, SW_SHOW); SetWindowPos(g_pWti[i].hwnd, NULL, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_NOZORDER | SWP_SHOWWINDOW); if (uCmd == SC_RESTORE || uCmd == SC_CLOSE) { //ShowWindow(g_pWti[i].hwnd, SW_RESTORE); MySwitchToThisWindow(g_pWti[i].hwnd); if (uCmd == SC_CLOSE) PostMessage(g_pWti[i].hwnd, WM_SYSCOMMAND, SC_CLOSE, 0); } } if (i - 1 != g_cWti) { MoveMemory(g_pWti + i, g_pWti + i + 1, (g_cWti - i - 1) * sizeof(WNDTRAYINFO)); } g_pWti[--g_cWti].hwnd = NULL; }
BOOL ShowTrayIcon(BOOL fShow) { BOOL fRet = DeleteTrayIcon(g_hwndMain, IDI_TASKSWITCHXP); g_dwFlags &= ~TSF_SHOWTRAYICON; if (g_hIconTray) { DestroyIcon(g_hIconTray); g_hIconTray = NULL; } if (fShow) { HICON hIconSm = NULL; if (g_dwFlags & TSF_USECUSTOMICON) { HKEY hkey = NULL; if (!RegOpenKeyEx(HKEY_CURRENT_USER, g_szRegKeyTs, 0, KEY_READ, &hkey)) { WCHAR szBuff[MAX_DATALEN] = L""; DWORD cbData = MAX_DATALEN * sizeof(WCHAR); if (!RegQueryValueEx(hkey, RS_CUSTOMICON, 0, NULL, (PBYTE)szBuff, &cbData)) { int nIconIndex; if (_GetIconPathIndex(szBuff, &nIconIndex)) { if (!ExtractIconEx(szBuff, nIconIndex, NULL, &hIconSm, 1)) hIconSm = NULL; } } RegCloseKey(hkey); } } if (!hIconSm) { g_hIconTray = (HICON)LoadImage(g_hinstExe, MAKEINTRESOURCE(IDI_TASKSWITCHXP), IMAGE_ICON, 16, 16, LR_DEFAULTCOLOR); } else { g_hIconTray = CopyIcon(hIconSm); DestroyIcon(hIconSm); } if (!g_hIconTray) g_hIconTray = LoadIcon(NULL, IDI_WARNING); fRet = AddTrayIcon(g_hwndMain, IDI_TASKSWITCHXP, g_hIconTray, g_szWindowName); g_dwFlags |= TSF_SHOWTRAYICON; } return(fRet); }
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { int nID; switch (message) { case WM_TASKBARNOTIFY: if (lParam == WM_LBUTTONUP) { ShowWindow(hConsole, !IsWindowVisible(hConsole)); SetForegroundWindow(hConsole); } else if (lParam == WM_RBUTTONUP) { ShowPopupMenu(); } break; case WM_COMMAND: nID = LOWORD(wParam); if (nID == WM_TASKBARNOTIFY_MENUITEM_SHOW) { ShowWindow(hConsole, SW_SHOW); SetForegroundWindow(hConsole); } else if (nID == WM_TASKBARNOTIFY_MENUITEM_HIDE) { ShowWindow(hConsole, SW_HIDE); } else if (nID == WM_TASKBARNOTIFY_MENUITEM_EXIT) { DeleteTrayIcon(); PostMessage(hConsole, WM_CLOSE, 0, 0); } break; case WM_DESTROY: PostQuitMessage(0); break; default: return DefWindowProc(hWnd, message, wParam, lParam); } return 0; }
CTrayIcon::~CTrayIcon(void) { DeleteTrayIcon(); }
void COutputDialog::OnDestroy() { DeleteTrayIcon(); CDialog::OnDestroy(); }
CTrayIconUI::~CTrayIconUI(void) { DeleteTrayIcon(); }
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { static UINT WM_TASKBARCREATED = 0; if (WM_TASKBARCREATED == 0) WM_TASKBARCREATED = RegisterWindowMessage(L"TaskbarCreated"); UINT nID; switch (message) { case WM_TASKBARNOTIFY: if (lParam == WM_LBUTTONUP) { ShowWindow(hConsole, !IsWindowVisible(hConsole)); SetForegroundWindow(hConsole); } else if (lParam == WM_RBUTTONUP) { SetForegroundWindow(hWnd); ShowPopupMenu(); } break; case WM_COMMAND: nID = LOWORD(wParam); if (nID == WM_TASKBARNOTIFY_MENUITEM_SHOW) { ShowWindow(hConsole, SW_SHOW); SetForegroundWindow(hConsole); } else if (nID == WM_TASKBARNOTIFY_MENUITEM_HIDE) { ShowWindow(hConsole, SW_HIDE); } if (nID == WM_TASKBARNOTIFY_MENUITEM_RELOAD) { ReloadCmdline(); } else if (nID == WM_TASKBARNOTIFY_MENUITEM_ABOUT) { MessageBoxW(hWnd, szTooltip, szWindowClass, 0); } else if (nID == WM_TASKBARNOTIFY_MENUITEM_EXIT) { DeleteTrayIcon(); PostMessage(hConsole, WM_CLOSE, 0, 0); } else if (WM_TASKBARNOTIFY_MENUITEM_PROXYLIST_BASE <= nID && nID <= WM_TASKBARNOTIFY_MENUITEM_PROXYLIST_BASE+sizeof(lpProxyList)/sizeof(lpProxyList[0])) { WCHAR *szProxy = lpProxyList[nID-WM_TASKBARNOTIFY_MENUITEM_PROXYLIST_BASE]; SetWindowsProxy(szProxy, NULL); SetWindowsProxyForAllRasConnections(szProxy); ShowTrayIcon(szProxy, NIM_MODIFY); } break; case WM_CLOSE: DeleteTrayIcon(); PostQuitMessage(0); break; case WM_DESTROY: PostQuitMessage(0); break; default: if (message == WM_TASKBARCREATED) { ShowTrayIcon(NULL, NIM_ADD); break; } return DefWindowProc(hWnd, message, wParam, lParam); } return 0; }
MRESULT EXPENTRY windowproc(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2) { HPS hps; RECTL rcl; DRAGITEM dit; PDRAGINFO pdin; HOBJECT hobj; static a=0; switch(msg) { /* control tray icon specific messages */ case DM_DROP: pdin = (PDRAGINFO)mp1; DrgAccessDraginfo(pdin); DrgQueryDragitem(pdin,sizeof(DRAGITEM),&dit,0); DrgQueryStrName(dit.hstrContainerName,256,cbuf); DrgQueryStrName(dit.hstrSourceName,256,buf); strcat(cbuf,buf); hobj=WinQueryObject("<WP_DRIVES>"); if(hobj)DosBeep(1000,100); //WinOpenObject(hobj,0,TRUE); WinMessageBox(HWND_DESKTOP,hwnd,"Drag Succeed!",cbuf,0,MB_OK | MB_INFORMATION); DrgFreeDraginfo(pdin); break; case DM_DRAGOVER: return MPFROM2SHORT(DOR_DROP,DO_LINK); case WM_TIMER: a++; a%=5; WinSendMsg(hwndFrame,WM_SETICON,(MPARAM)hIcon[a],NULL); ChangeTrayIcon(hwnd,NULLHANDLE); break; case WM_BUTTON1CLICK|0x2000: case WM_BUTTON2CLICK|0x2000: /* activate frame window */ WinSetWindowPos(hwndFrame,HWND_TOP,0,0,0,0,SWP_ACTIVATE | SWP_SHOW | SWP_ZORDER | SWP_RESTORE); break; case WM_CREATE: /* initialize window */ /* initialize tray api */ InitializeTrayApi(hwnd); break; case WM_DDE_INITIATEACK: /* aswer dde server */ AnswerTrayApiDdeAck(mp1); AddTrayIcon(hwnd,WinSendMsg(hwndFrame,WM_QUERYICON,NULL,NULL)); WinStartTimer(hab,hwnd,1,500); return (MRESULT)0L; case WM_PAINT: hps = WinBeginPaint(hwnd,NULL,NULL); WinQueryWindowRect(hwnd, &rcl); WinFillRect(hps, &rcl, CLR_CYAN); GpiSetColor(hps, CLR_DARKBLUE); GpiSetBackColor(hps, CLR_CYAN); rcl.xLeft=(rcl.xLeft+rcl.xRight)/2-40; rcl.yBottom=(rcl.yBottom+rcl.yTop)/2-7; GpiCharStringAt(hps, (PPOINTL)&rcl, 13, "Hello, world!"); WinEndPaint(hps); break; case WM_DESTROY: /* delete application icon from system tray */ return (MRESULT)DeleteTrayIcon(hwnd); } return WinDefWindowProc(hwnd, msg, mp1, mp2); }
CIISxpressTrayIcon::~CIISxpressTrayIcon(void) { DeleteTrayIcon(); }