Savant |
23-01-2005 17:52 291299 |
VC++.NET | Менюшка в трее не исчезает
Вложений: 1
Создаю менюшку над значком в трее в общем-то обычным способом (см. вложение). Проблема в том, что меню не исчезает, пока либо не выбрать из него что-нибудь, либо пока связанное окно не получит фокус. Видел подобную ситуацию еще в нескольких бесплатных программах, но в большинстве все нормально (winamp, drweb, icqlite, ... и прочих серьёзных прогах).
|
Savant |
23-01-2005 19:41 291330 |
Нашел в 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);
...
Все нормально (менюшка пропадает), кроме того, что связанное окно "всплывает" (что не очень нравится, мне по крайней мере).
|
frizzn |
23-01-2005 21:37 291372 |
Цитата:
Все нормально (менюшка пропадает), кроме того, что связанное окно "всплывает" (что не очень нравится, мне по крайней мере).
|
WinAmp тоже всплывает :yes:
PS: Не забывай удалять значок из трея при выходе.
PPS: Можно еще TaskbarCreated ловить. (А можно и не ловить... :shuffle: )
|
Savant |
23-01-2005 21:58 291385 |
frizzn
Цитата:
Не забывай удалять значок из трея при выходе.
|
Он вроде и так пропадал... :shuffle: Ну ладно, надеюсь Shell_NotifyIcon(NIM_DELETE, &tnd); перед последним return в главной функции хватит :)
Цитата:
PPS: Можно еще TaskbarCreated ловить. (А можно и не ловить... :shuffle: )
|
Как-нибудь потом. Сёдня буду пока рабираться со стилями в меню.
Спасибо за советы!
|
Время: 18:51.
© OSzone.net 2001-