C++ 获取任务栏图标
时间: 2023-07-26 08:04:49 浏览: 82
要获取任务栏图标,可以使用 Windows API 中的 Shell_NotifyIcon 函数。具体步骤如下:
1. 定义 NOTIFYICONDATA 结构体:
```c++
NOTIFYICONDATA nid;
ZeroMemory(&nid, sizeof(NOTIFYICONDATA));
nid.cbSize = sizeof(NOTIFYICONDATA);
nid.hWnd = hWnd; // 窗口句柄
nid.uID = ID_TRAY_ICON; // 可以随意指定一个唯一的 ID
nid.uFlags = NIF_ICON | NIF_MESSAGE | NIF_TIP;
nid.uCallbackMessage = WM_TRAY_ICON;
nid.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_APP_ICON)); // 图标句柄
lstrcpy(nid.szTip, TEXT("这是任务栏图标的提示信息")); // 鼠标悬浮时的提示信息
```
2. 调用 Shell_NotifyIcon 函数将图标添加到任务栏:
```c++
Shell_NotifyIcon(NIM_ADD, &nid);
```
3. 如果需要移除图标,可以调用 Shell_NotifyIcon 函数:
```c++
Shell_NotifyIcon(NIM_DELETE, &nid);
```
注意,如果需要接收任务栏图标的消息,可以在窗口消息处理函数中处理 WM_TRAY_ICON 消息:
```c++
case WM_TRAY_ICON:
{
UINT uID = (UINT) wParam;
UINT uMsg = (UINT) lParam;
if (uID == ID_TRAY_ICON)
{
// 处理任务栏图标的消息
}
break;
}
```