У меня есть структура NOTIFYICONDATA nid, определенная в первом экземпляре сообщения WM_CREATE. Идентификатор сообщения nid — WM_TRAYICON. Я обрабатываю сообщение WM_TRAYICON в WindowProc, которое связано с hWnd nid. Когда WM_TRAYICON обрабатывается, я вызываю MessageBox. Как я сейчас вижу, это похоже на процедуру блокировки. Я не могу обрабатывать сообщения WM_HOTKEY, зарегистрированные с помощью RegisterHotKey, все из которых были переданы NULL в их параметр hWnd. Модальное окно не позволяет мне взаимодействовать с окном, на которое ссылается hWnd, что нормально. Однако сообщения WM_TRAYICON по-прежнему обрабатываются. При каждом щелчке значка на панели задач вызывается MessageBox и появляется новое модальное окно. Мне интересно, может ли кто-нибудь объяснить, что здесь происходит. Значок на панели задач и содержащая его область состояния работают в другом потоке, чем остальная часть программы? Мое понимание потоков элементарно, поэтому я, возможно, неправильно использую это слово.
Я включил ссылку на суть, содержащую весь код, необходимый для запуска программы. Проблема в HandleTrayIconMessage. Я настроил проект, используя шаблон классического приложения Windows из Visual Studio 2022.
Подробнее здесь: https://stackoverflow.com/questions/786 ... oc-functio