Показать полную графическую версию : VC++.NET | Менюшка в трее не исчезает
Создаю менюшку над значком в трее в общем-то обычным способом (см. вложение). Проблема в том, что меню не исчезает, пока либо не выбрать из него что-нибудь, либо пока связанное окно не получит фокус. Видел подобную ситуацию еще в нескольких бесплатных программах, но в большинстве все нормально (winamp, drweb, icqlite, ... и прочих серьёзных прогах).
Нашел в MSDN'e одно из возможных решений проблемы:
вместо
...
TrackPopupMenu (GetSubMenu(hMenu, 0), TPM_CENTERALIGN, point.x, point.y, 0, hWnd, NULL);
DestroyMenu (hMenu);
...
надо написать
...
SetForegroundWindow(hWnd);
TrackPopupMenu (GetSubMenu(hMenu, 0), TPM_CENTERALIGN, point.x, point.y, 0, hWnd, NULL);
PostMessage(hWnd, WM_NULL, 0, 0);
DestroyMenu (hMenu);
...
Все нормально (менюшка пропадает), кроме того, что связанное окно "всплывает" (что не очень нравится, мне по крайней мере).
Все нормально (менюшка пропадает), кроме того, что связанное окно "всплывает" (что не очень нравится, мне по крайней мере). WinAmp тоже всплывает :yes:
PS: Не забывай удалять значок из трея при выходе.
PPS: Можно еще TaskbarCreated ловить. (А можно и не ловить... :shuffle: )
frizzn
Не забывай удалять значок из трея при выходе.
Он вроде и так пропадал... :shuffle: Ну ладно, надеюсь Shell_NotifyIcon(NIM_DELETE, &tnd); перед последним return в главной функции хватит :)
PPS: Можно еще TaskbarCreated ловить. (А можно и не ловить... :shuffle: )
Как-нибудь потом. Сёдня буду пока рабираться со стилями в меню.
Спасибо за советы!
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC