我有一个程序,字面上包含一个托盘图标。不需要GUI。但是,在编写win32代码时,是否仍需要初始化与托盘图标关联的hWnd对象?
例如,将NOTIFYICONDATA hWnd字段指向窗口的句柄是正常的。像
nid.hWnd = hwnd;
基本上,如果我设置了
,我的图标是否仍能接收消息nid.hwnd = NULL;
答案 0 :(得分:7)
如果没有窗口,您将如何收到消息?
是的,您需要一个与托盘图标相关联的窗口。
答案 1 :(得分:1)
您可以通过指定HWND_MESSAGE
创建窗口来创建message-only window。但是,仅消息窗口不接收广播消息,您将错过TaskbarCreated
消息。此消息告诉您的应用程序explorer.exe
已重新启动,并且您的应用程序需要重新添加其通知图标。相当重要。因此,创建一个永远不会显示的窗口:从不调用ShowWindow()
。