我有一个程序,它实际上由一个托盘图标组成。不需要图形用户界面。但是,在编写win32代码的时候,是否还需要初始化一个hWnd对象来关联托盘图标呢?
例如,NOTIFYICONDATA hWnd 字段通常指向窗口句柄。像
nid.hWnd = hwnd;
本质上,如果我设置,我的图标是否仍能接收消息
nid.hwnd = NULL;
如果没有窗口,您将如何接收消息?
是的,您需要一个与托盘图标关联的窗口。
您可以通过指定创建窗口来创建仅消息HWND_MESSAGE
窗口。但是,仅消息窗口不接收广播消息,您会错过该TaskbarCreated
消息。此消息告诉您的应用程序explorer.exe
已重新启动,并且您的应用程序需要重新添加其通知图标。比较重要。所以创建一个永远不可见的窗口:永远不要调用ShowWindow()
.