你有一个win32程序,它只包含一个托盘(通知)图标吗?

时间:2011-09-28 23:00:45

标签: windows winapi trayicon

我有一个程序,字面上包含一个托盘图标。不需要GUI。但是,在编写win32代码时,是否仍需要初始化与托盘图标关联的hWnd对象?

例如,将NOTIFYICONDATA hWnd字段指向窗口的句柄是正常的。像

nid.hWnd = hwnd;

基本上,如果我设置了

,我的图标是否仍能接收消息
nid.hwnd = NULL;

2 个答案:

答案 0 :(得分:7)

如果没有窗口,您将如何收到消息?

是的,您需要一个与托盘图标相关联的窗口。

答案 1 :(得分:1)

可以通过指定HWND_MESSAGE创建窗口来创建message-only window。但是,仅消息窗口不接收广播消息,您将错过TaskbarCreated消息。此消息告诉您的应用程序explorer.exe已重新启动,并且您的应用程序需要重新添加其通知图标。相当重要。因此,创建一个永远不会显示的窗口:从不调用ShowWindow()