When i create systray apps, i create the menu manually:
Code:
case WM_ICONNOTIFY:
switch(lParam){
case WM_RBUTTONUP:
SetForegroundWindow(d.hWndMain);
GetCursorPos(&p1);
mPopup = CreatePopupMenu();
AppendMenu(mPopup, MF_STRING|MF_ENABLED, 1, "Restore");
AppendMenu(mPopup, MF_SEPARATOR, 0, 0);
AppendMenu(mPopup, MF_STRING|MF_ENABLED, 3, "Close");
switch(TrackPopupMenu(mPopup ,TPM_RIGHTALIGN|TPM_LEFTBUTTON|TPM_RETURNCMD, p1.x, p1.y,0, d.hWndMain , NULL)){
case 1:// Restore SetForegroundWindow(d.hWndMain);
TrayRemove();
d.bInTray = false;
ShowWindow(d.hWndMain, SW_SHOWNORMAL);
break;
case 3:// End SendMessage(d.hWndMain, WM_CLOSE, 0, 0); break;
}
DestroyMenu(mPopup);
break;
case WM_LBUTTONDBLCLK:
case NIN_BALLOONUSERCLICK:
SetForegroundWindow(d.hWndMain);
TrayRemove();
d.bInTray = false;
ShowWindow(d.hWndMain, SW_SHOWNORMAL);
break;
}
break;