C++系统托盘专用程序

C++ system tray only program

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

Shell_NotifyIconA function

NOTIFYICONDATAA structure

我注意到 window 句柄 (HWND) 是必需的。这对我想要完成的事情来说非常糟糕,因为我正在寻找一个只对系统托盘做出反应的程序:它不会 "minimize" window 到托盘,它仅使用通知(clicking/right 单击图标)进行交互。

我该怎么做?

Windows 7 SDK contains an example called NotificationIcon。这个例子包含一行

ShowWindow(hwnd, nCmdShow);

在其 wWinMain 函数中。这个调用的效果是你看到一个程序window.

只需将此行更改为

ShowWindow(hwnd, SW_HIDE);

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