【发布时间】:2011-09-28 23:00:44
【问题描述】:
我有一个实际上由托盘图标组成的程序。不需要图形用户界面。但是,在编写win32代码的时候,是否还需要初始化一个hWnd对象来关联托盘图标呢?
例如,NOTIFYICONDATA hWnd 字段指向窗口句柄是正常的。喜欢
nid.hWnd = hwnd;
基本上,如果我设置了,我的图标是否仍然能够接收消息
nid.hwnd = NULL;
【问题讨论】:
我有一个实际上由托盘图标组成的程序。不需要图形用户界面。但是,在编写win32代码的时候,是否还需要初始化一个hWnd对象来关联托盘图标呢?
例如,NOTIFYICONDATA hWnd 字段指向窗口句柄是正常的。喜欢
nid.hWnd = hwnd;
基本上,如果我设置了,我的图标是否仍然能够接收消息
nid.hwnd = NULL;
【问题讨论】:
如果没有窗口,您将如何接收消息?
是的,您需要一个与托盘图标关联的窗口。
【讨论】:
WS_VISIBLE的窗口,它一开始是不可见的(不需要“隐藏”)。仅消息窗口非常常见。
wm_taskbarcreated 消息。 @MatteoItalia
您可以通过指定HWND_MESSAGE 创建窗口来创建message-only window。但是,仅消息窗口不接收广播消息,您将错过TaskbarCreated 消息。此消息告诉您的应用程序 explorer.exe 已重新启动,并且您的应用程序需要重新添加其通知图标。比较重要。所以创建一个永远不可见的窗口:never call ShowWindow().
【讨论】: