MS Windows - главное окно не отвечает при отображении меню на значке уведомлений в трее (используйте скрытое окно для обработки сообщения) - PullRequest
0 голосов
/ 27 августа 2011

Я реализовал класс, в этом классе будет отображаться иконка в трее.чтобы обработать сообщение от иконки, мне нужно создать скрытое окно.

Каждая вещь работает отлично, за исключением того, что если вы щелкнете за пределами значка, значок не исчезнет.Я исправил это, добавив код ниже:

SetForegroundWindow (message-only-hiden-window) // добавлен TrackPopupMenu ()

РЕШЕНИЕ: Чтобы исправить первое поведение, необходимо сделатьтекущее окно переднее окно перед вызовом TrackPopupMenu или TrackPopupMenuEx.

Теперь я получаю ожидаемый результат: меню может исчезнуть, если вы щелкнете за пределами иконки в трее.

Проблема теперь в том, что после вызова SetForegroundWindow (message-only-hiden-window) главное окно приложения не отвечает (не может изменить размер перемещения). Я вижу, что главное окно действительно получает эти сообщения в spy ++.Имейте это в виду, если нет вызова SetForegroundWindow (message-only-hiden-window).Хорошо.За исключением меню не исчезнет.

Кто-нибудь имеет опыт работы в подобной ситуации?Как реализовать иконку в трее, у которой вообще нет окна переднего плана?

Буду признателен за любую помощь.Если вы хотите исходный код, я могу написать вам по электронной почте.

1 Ответ

1 голос
/ 28 августа 2011

решена.Я забыл вернуть DefWindowProc в окне только сообщения.хитрый

...