1

我想使用 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 窗口?

谢谢!

4

1 回答 1

2

哎呀,对不起,是我的错。它不起作用的原因是我从另一个线程调用了 CreateWindowEx() 。当我使用主线程时,它工作正常。

于 2012-09-21T18:30:43.403 回答