Shell_NotifyIcon() и невидимое окно

Я хотел бы использовать Shell_NotifyIcon(), чтобы добавить значок в системный трей, но я не хочу, чтобы в моем приложении было видимое окно. Вот почему я передаю дескриптор в окно только для сообщений в Shell_NotifyIcon(). Окно было создано так:

hTrayWnd = CreateWindowEx(0, CLASSNAME, "tray_dummy", 0, 0, 0, 0, 0, HWND_MESSAGE, NULL, HINSTANCE, NULL);

CLASSNAME указывает на имя моего класса, которое я зарегистрировал с помощью RegisterClassEx(), а HINSTANCE - это дескриптор моего экземпляра.

Теперь проблема в том, что иконка в трее добавлена, но WindowProc() моего класса никогда не вызывается. Если я использую обычное окно верхнего уровня, все работает нормально.

Нет ли способа создать иконку в трее без окна верхнего уровня? Я видел приложения с иконкой в ​​трее без окна верхнего уровня, поэтому это должно быть как-то возможно. Но почему он не работает с окном HWND_MESSAGE?

Спасибо!

1 ответ

Решение

Ой, простите, это была моя вина. Причина, по которой это не сработало, заключалась в том, что я вызвал CreateWindowEx() из другого потока. Когда я использую основной поток, он работает нормально.

Другие вопросы по тегам