У нас есть приложение, которое использует различные значки на панели задач для общения с пользователями. Различные значки указывают на разные внутренние состояния приложения (в противном случае без окон). Мы реализовали наш материал в области уведомлений, используя код из этого кода Проект Guru (версия MFC; это ни в коем случае не новое приложение), и до недавнего времени он работал нормально. Однако недавно мы попытались добавить еще один значок и столкнулись с проблемой.
Вот как это предполагается работать:
У нас есть один главный значок (назовите его «A»), который указывает, что приложение запущено.
Если происходит определенное событие, мы отображаем значок «B», над которым пользователь может навести указатель мыши, чтобы получить всплывающую подсказку со статусом этого события.
Если запускается процедура (недавно добавленная, внутренняя, многопоточная), мы отображаем значок «C», и снова пользователь может навести на него курсор, чтобы увидеть всплывающую подсказку, которая указывает на ход выполнения этого действия.
Что на самом деле происходит: если значок 'B' виден, когда мы (пытаемся) отобразить значок 'C', то значок 'B' либо полностью исчезает, чтобы никогда не возвращаться, либо он остается там и значок ' C 'никогда не отображается, но всплывающая подсказка для значка «B» изменяется на значок «C», который должен иметь.
Я немного упростил сценарий; на самом деле у нас есть несколько других значков, но они используются редко. Однако у нас никогда не было проблем с отображением нескольких значков, пока мы не добавили значок «C» за последние пару недель.
Любые идеи? Рад прояснить все, что я не объяснил хорошо.
m_tnd
? Похоже, вы повторно используетеNOTIFYICONDATA
структуры или, возможно, передаете одни и те жеhWnd
иUID
для всех значков. - person David Heffernan   schedule 27.10.2011