首页 > 解决方案 > 仅 C++ 系统托盘程序

问题描述

在检查了微软关于系统托盘图标的文档(我可以找到)之后:

Shell_NotifyIconA 函数

NOTIFYICONDATAA 结构体

我注意到需要一个窗口句柄(HWND)。这对我想要完成的事情非常不利,因为我正在寻找一个只对系统托盘做出反应的程序:它不会将窗口“最小化”到托盘,它只是使用通知(点击/右键单击图标)进行交互。

我该怎么做呢?

标签: c++winapisystem-tray

解决方案


Windows 7 SDK包含一个名为NotificationIcon的示例。此示例包含一行

ShowWindow(hwnd, nCmdShow);

在它的wWinMain功能中。此调用的效果是您看到一个程序窗口。

只需将此行更改为

ShowWindow(hwnd, SW_HIDE);

隐藏程序窗口并仅在系统托盘中显示图标。正如其他人指出的那样,该程序需要一个程序窗口,即使它不可见。


推荐阅读