0

我想将我的程序最小化到系统托盘,然后我想让程序做 3 件事:

1)如果我把鼠标放在它上面,它会在它附近显示一些文字(比如当你把鼠标放在互联网图标附近,它会告诉你你的网络 SSID ...... 2)如果我是对的单击系统托盘中的图标,将发生 X 3)如果我左键单击系统托盘中的图标,将发生 Y

我使用以下代码将我的程序最小化到系统托盘:

void MinimizeSystemTray(HWND hwnd)
{
NOTIFYICONDATA nid; 
nid.cbSize = sizeof(nid); 
nid.hWnd = hwnd;
nid.hIcon = LoadIcon(0, IDI_APPLICATION); 
nid.uCallbackMessage = WM_USER; 
nid.uFlags = NIF_ICON | NIF_TIP | NIF_MESSAGE; 

ShowWindow(hwnd, SW_HIDE);

Shell_NotifyIcon(NIM_ADD, &nid);
}

它工作得很好,虽然我无法找到我遇到的 3 个问题的解决方案......

谢谢!

4

1 回答 1

1

更仔细地阅读文档。你所要求的一切都被它所涵盖。

您已经在使用NIF_TIPand NIF_MESSAGE,它允许您在鼠标悬停时提供弹出文本(#1),并告诉系统托盘在用户单击您的图标时将哪个窗口消息发送回您的 HWND(#2 和 #3) , 分别。该消息包含您需要了解的所有信息,以区分鼠标悬停、鼠标左键/右键和空格键按下。

于 2013-08-29T15:43:55.840 回答