Shell_NotifyIconW 函数 (shellapi.h)
将消息发送到任务栏的状态区域。
语法
BOOL Shell_NotifyIconW(
[in] DWORD dwMessage,
[in] PNOTIFYICONDATAW lpData
);
参数
[in] dwMessage
类型:DWORD
一个 值,该值指定要由此函数执行的操作。 可以具有以下一个值:
NIM_ADD (0x00000000)
0x00000000。 将图标添加到状态区域。 图标在 lpdata 通过其 uID 或 guidItem 成员指向的 NOTIFYICONDATA 结构中提供标识符。 此标识符用于对 Shell_NotifyIcon 的后续调用,以便对图标执行后续操作。
NIM_MODIFY (0x00000001)
0x00000001。 修改状态区域中的图标。 lpdata 指向的 NOTIFYICONDATA 结构使用最初在将图标添加到通知区域时分配给该图标的 ID (NIM_ADD) 来标识要修改的图标。
NIM_DELETE (0x00000002)
0x00000002。 从状态区域中删除图标。 lpdata 指向的 NOTIFYICONDATA 结构使用最初在将图标添加到通知区域时分配给该图标的 ID (NIM_ADD) 来标识要删除的图标。
NIM_SETFOCUS (0x00000003)
0x00000003。 仅Shell32.dll 版本 5.0 及更高版本。 将焦点返回到任务栏通知区域。 通知区域图标在完成 UI 操作后应使用此消息。 例如,如果图标显示快捷菜单,但用户按 ESC 将其取消,请使用 NIM_SETFOCUS 将焦点返回到通知区域。
NIM_SETVERSION (0x00000004)
0x00000004。 仅Shell32.dll 版本 5.0 及更高版本。 指示通知区域按照 lpdata 所指向结构的 uVersion 成员中指定的版本号的行为。 版本号指定可识别的成员。
每次 (NIM_ADD) 添加通知区域图标时,都必须调用NIM_SETVERSION。 不需要使用 NIM_MODIFY 调用它。 用户注销后,版本设置不会保留。
有关详细信息,请参见“备注”部分。
[in] lpData
类型: PNOTIFYICONDATA
指向 NOTIFYICONDATA 结构的指针。 结构的内容取决于 dwMessage 的值。 它可以定义要添加到通知区域的图标、使该图标显示通知,或标识要修改或删除的图标。
返回值
类型: BOOL
如果成功,则返回 TRUE ,否则返回 FALSE 。 如果 dwMessage 设置为 NIM_SETVERSION,则如果成功更改版本,则函数返回 TRUE ;如果不支持请求的版本,则返回 FALSE 。
注解
从 Windows 2000 (Shell32.dll 版本 5.0) 开始,如果将 lpdata 指向的 NOTIFYICONDATA 结构的 uVersion 成员设置为 NOTIFYICON_VERSION_4 或更高版本,Shell_NotifyIcon鼠标和键盘事件的处理方式与早期版本的 Windows 不同。 差异包括:
- 如果用户使用键盘选择通知图标的快捷菜单,Shell 现在会向关联的应用程序发送 WM_CONTEXTMENU 消息。 早期版本发送 WM_RBUTTONDOWN 和 WM_RBUTTONUP 消息。
- 如果用户使用键盘选择通知图标并使用空格键或 ENTER 键激活它,则 5.0 版 Shell 会向关联的应用程序发送NIN_KEYSELECT通知。 早期版本发送 WM_RBUTTONDOWN 和 WM_RBUTTONUP 消息。
- 如果用户使用鼠标选择通知图标并使用 ENTER 键激活它,Shell 现在会向关联的应用程序发送NIN_SELECT通知。 早期版本发送 WM_RBUTTONDOWN 和 WM_RBUTTONUP 消息。
- NIN_BALLOONSHOW。 显示气球时发送, (气球排队) 。
-
NIN_BALLOONHIDE。 当气球消失时发送。 例如,删除图标时。 如果因超时而关闭气球,或者用户单击鼠标,则不会发送此消息。
从 Windows 7 开始,当用户在新计算机上) (第一个小时的静默时间尝试显示设置了 NIIF_RESPECT_QUIET_TIME 标志的通知时,也会发送NIN_BALLOONHIDE。 在这种情况下,从不显示气球。
- NIN_BALLOONTIMEOUT。 在因超时而关闭气球时发送。
- NIN_BALLOONUSERCLICK。 关闭气球时发送,因为用户单击了鼠标。
- NIN_POPUPOPEN。 当用户将光标悬停在图标上以指示应使用更丰富的弹出 UI 代替标准文本工具提示时发送。
- NIN_POPUPCLOSE。 当光标不再悬停在图标上以指示应关闭丰富的弹出 UI 时发送。
注意
shellapi.h 标头将 Shell_NotifyIcon 定义为别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将非特定编码别名与非非特定编码的代码混合使用可能会导致不匹配,从而导致编译或运行时错误。 有关详细信息,请参阅 函数原型的约定。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows XP [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | Windows |
标头 | shellapi.h |
Library | Shell32.lib |
DLL | Shell32.dll (4.0 或更高版本) |
API 集 | windows 10 版本 10.0.10240 中引入的 ext-ms-win-shell-shell32-l1-2-1 () |