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)
|
||||
{
|
||||
case WM_PAINT:
|
||||
cerr << "WM_PAINT" << endl;
|
||||
break;
|
||||
case WM_COMMAND:
|
||||
cerr << "WM_COMMAND" << endl;
|
||||
break;
|
||||
case WM_CLOSE:
|
||||
case WM_DESTROY:
|
||||
@ -114,9 +110,20 @@ int WinMain(
|
||||
pport_write(0x0);
|
||||
}
|
||||
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 */
|
||||
session_notification_disable(hWnd);
|
||||
|
||||
@ -138,7 +145,33 @@ LRESULT WindowProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
|
||||
PostQuitMessage(0);
|
||||
break;
|
||||
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;
|
||||
}
|
||||
return 0;
|
||||
|
Loading…
x
Reference in New Issue
Block a user