C++如何实现程序到托盘



                                                                                             C++如何实现程序到托盘

我是win32窗口项目

用到头文件#include"shellapi.h"


#define WM_NOTIFYICON WM_USER + 0x01//宏定义自定义消息处理

在创建窗口的hWnd = CreateWindow(szWindowClass, szTitle, WS_SYSMENU,
  1300, 610, 300, 250, NULL, NULL, hInstance, NULL);函数后面

放如下代码:

NOTIFYICONDATA nid = { 0 };//初始化托盘对象
 nid.cbSize = sizeof(NOTIFYICONDATA);//结构体长度
 nid.hWnd = hWnd;//窗口句柄
 nid.uID = IDI_SMALL;//图标
 nid.hIcon = ::LoadIcon(hInst, MAKEINTRESOURCE(IDI_SMALL));//加载图标
 nid.uCallbackMessage = WM_NOTIFYICON;//消息处理,这里很重要,处理鼠标点击
 nid.uFlags = NIF_ICON | NIF_MESSAGE | NIF_TIP;
 _tcscpy(nid.szTip, _T("托盘响应"));
 Shell_NotifyIcon(NIM_ADD, &nid);

然后;

在WndProc()消息处理函数里switch下面加如下代码

case WM_NOTIFYICON://这是我们的宏定义
  if ((wParam == IDI_SMALL) && (lParam == WM_LBUTTONDOWN)) // 鼠标左键按下时响应
  {
   ShowWindow(hWnd, 10);//当点击鼠标的时候显示窗口
  }
  break;

最后在消息处理函数的case WM_DESTROY:下面去释放对象和图标

 NOTIFYICONDATA nid;
 nid.cbSize = sizeof(NOTIFYICONDATA);
 nid.hIcon = LoadIcon(hInstanceS, MAKEINTRESOURCE(IDI_ICON1));
 
 nid.hWnd = hWnd;
 nid.uCallbackMessage = WM_NC;
 nid.uFlags = NIF_ICON | NIF_MESSAGE | NIF_TIP;
 nid.uID = IDC_NC;
 Shell_NotifyIcon(NIM_DELETE, &nid);



  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

vqt5_qt6

你的鼓励是我们创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值