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

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

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

nid.hWnd = hwnd; 

从本质上讲,如果我设置,我的图标是否仍然可以接收消息

 nid.hwnd = NULL; 

你将如何收到没有窗口的消息?

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

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