added popup menu to tray icon with "Exit" option, removing tray icon upon exit
git-svn-id: http://apu.dw.local/svnusers/JoshHoltrop/pppc/trunk@39 8131a0b2-b21c-1c47-bd6a-f003126495bd
This commit is contained in:
parent
73f3ba093d
commit
d2bf8efc1b
43
pppc.cc
43
pppc.cc
@ -92,10 +92,6 @@ int WinMain(
|
|||||||
switch (msg.message)
|
switch (msg.message)
|
||||||
{
|
{
|
||||||
case WM_PAINT:
|
case WM_PAINT:
|
||||||
cerr << "WM_PAINT" << endl;
|
|
||||||
break;
|
|
||||||
case WM_COMMAND:
|
|
||||||
cerr << "WM_COMMAND" << endl;
|
|
||||||
break;
|
break;
|
||||||
case WM_CLOSE:
|
case WM_CLOSE:
|
||||||
case WM_DESTROY:
|
case WM_DESTROY:
|
||||||
@ -114,9 +110,20 @@ int WinMain(
|
|||||||
pport_write(0x0);
|
pport_write(0x0);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case WM_COMMAND:
|
||||||
|
switch (LOWORD(msg.wParam)) /* menu entry index */
|
||||||
|
{
|
||||||
|
case 0: /* exit */
|
||||||
|
running = false;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Shell_NotifyIcon(NIM_DELETE, &nid);
|
||||||
|
|
||||||
/* stop listening for session notifications */
|
/* stop listening for session notifications */
|
||||||
session_notification_disable(hWnd);
|
session_notification_disable(hWnd);
|
||||||
|
|
||||||
@ -138,7 +145,33 @@ LRESULT WindowProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
|
|||||||
PostQuitMessage(0);
|
PostQuitMessage(0);
|
||||||
break;
|
break;
|
||||||
case WM_ICON_NOTIFY:
|
case WM_ICON_NOTIFY:
|
||||||
cerr << "WM_ICON_NOTIFY" << endl;
|
if (wParam == 0)
|
||||||
|
{
|
||||||
|
if (LOWORD(lParam) == WM_RBUTTONUP)
|
||||||
|
{
|
||||||
|
HMENU hMenu = ::CreatePopupMenu();
|
||||||
|
MENUITEMINFO mii;
|
||||||
|
memset(&mii, 0, sizeof(mii));
|
||||||
|
mii.cbSize = sizeof(mii);
|
||||||
|
mii.fMask = MIIM_STRING | MIIM_ID;
|
||||||
|
mii.wID = 0;
|
||||||
|
mii.dwTypeData = "E&xit";
|
||||||
|
mii.cch = strlen(mii.dwTypeData);
|
||||||
|
if (::InsertMenuItem(hMenu, 0, TRUE, &mii) == 0)
|
||||||
|
{
|
||||||
|
cerr << "Warning: InsertMenuItem(): " << GetLastError() << endl;
|
||||||
|
}
|
||||||
|
POINT pos;
|
||||||
|
GetCursorPos(&pos);
|
||||||
|
::SetForegroundWindow(hWnd);
|
||||||
|
::TrackPopupMenu(hMenu, 0, pos.x, pos.y, 0, hWnd, NULL);
|
||||||
|
|
||||||
|
// BUGFIX: See "PRB: Menus for Notification Icons Don't Work Correctly"
|
||||||
|
::PostMessage(hWnd, WM_NULL, 0, 0);
|
||||||
|
|
||||||
|
DestroyMenu(hMenu);
|
||||||
|
}
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user