ZBLOG

Shell_NotifyIcon 使用案例,案例中要有设置图标功能,图标来源与具体路径下的图片

以下是一个使用 Shell_NotifyIcon 的示例,用于设置系统托盘图标,并从指定路径加载图标文件。

  1. #include <windows.h>
  2. // 函数声明
  3. LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
  4. int main()
  5. {
  6. // 创建窗口
  7. HWND hwnd;
  8. WNDCLASSEX wc = { sizeof(WNDCLASSEX), CS_CLASSDC, WindowProc, 0L, 0L,
  9. GetModuleHandle(NULL), NULL, NULL, NULL, NULL,
  10. "NotificationWindow", NULL };
  11. RegisterClassEx(&wc);
  12. hwnd = CreateWindow(wc.lpszClassName, "Notification Window",
  13. WS_OVERLAPPEDWINDOW, CW_USEDEFAULT,
  14. CW_USEDEFAULT, 500, 500,
  15. NULL, NULL, wc.hInstance, NULL);
  16. // 设置系统托盘图标
  17. NOTIFYICONDATA nid = { sizeof(NOTIFYICONDATA) };
  18. nid.hWnd = hwnd;
  19. nid.uID = 1; // 托盘图标唯一ID
  20. nid.uFlags = NIF_ICON | NIF_TIP | NIF_MESSAGE;
  21. nid.uCallbackMessage = WM_USER + 1; // 回调消息
  22. // 加载图标文件并设置为托盘图标
  23. HICON hIcon = (HICON)LoadImage(NULL,"C:\\Path\\To\\Icon.ico", IMAGE_ICON,
  24. GetSystemMetrics(SM_CXSMICON),
  25. GetSystemMetrics(SM_CYSMICON),
  26. LR_LOADFROMFILE | LR_DEFAULTSIZE | LR_SHARED);
  27. if (hIcon)
  28. nid.hIcon = hIcon;
  29. strcpy(nid.szTip,"Tooltip Text"); // 鼠标悬停时的提示文本
  30. Shell_NotifyIcon(NIM_ADD, &nid); // 将图标添加到系统托盘
  31. // 消息循环
  32. MSG msg;
  33. while (GetMessage(&msg, NULL, 0, 0))
  34. {
  35. TranslateMessage(&msg);
  36. DispatchMessage(&msg);
  37. }
  38. // 清理并移除托盘图标
  39. Shell_NotifyIcon(NIM_DELETE, &nid);
  40. DestroyWindow(hwnd);
  41. return 0;
  42. }
  43. LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg,
  44. WPARAM wParam, LPARAM lParam)
  45. {
  46. if (uMsg == WM_DESTROY)
  47. {
  48. PostQuitMessage(0);
  49. return 0;
  50. }
  51. if (uMsg == WM_USER + 1) // 自定义回调消息处理
  52. {
  53. // 处理自定义操作,例如点击托盘图标时的行为
  54. return 0;
  55. }
  56. return DefWindowProc(hwnd, uMsg, wParam, lParam);
  57. }

上述代码中,你需要将 C:\\Path\\To\\Icon.ico 替换为具体的图标文件路径。此示例会创建一个窗口,并将指定路径下的图标文件设置为系统托盘图标。你可以根据需要在 WindowProc 函数中添加自定义行为和响应。


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=10332

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?