_NOIFYICONDATA结构体
//系统定义的结构体
typedef struct _NOTIFYICONDATA{DWORD cbSize;//以字节为单位的结构体大小HWND hWnd;//接收托盘图标通知消息的窗口句柄UINT uID;//应用程序定义的图标ID号UINT uFlags;//图标属性UINT uCallbackMessages;//应用程序定义的消息ID,传递给hWndHICON hIcon;//图标句柄char szTip[64];//鼠标停留提示信息
}NOTIFYICONDATA,*PNOTIFYICONDATA;
/*在该结构中uFlags可以是下列之一或组合:NIF_ICON 设置成员hIcon有效NIF_MESSAGE设置成员uCallbackMessage有效NIF_TIP设置成员szTip有效
*/
Shell_NotifyIcon函数

用于在托盘上增加、删除或修改图标

WINSHELLAPI BOOL WINAPI Shell_NotifyIcon(DWORD dwMessage,PNOTIFYICONDATA pnid);
/*pnid是NOTIFYICONDATA结构的指针dwMessage是被传递的消息:NIM_ADD增加图标NIM_DELETE删除图标NIM_MODIFY修改图标
*/
生成托盘
    NOTIFYICONDATA m_tnid;#define MYWM_NOTIFYICON WM_USER+1//OnCreate 函数中return 之前添加托盘生成代码m_tnid.cbSize=sizeof(NOTIFYICONDATA); m_tnid.hWnd=this->m_hWnd; m_tnid.uFlags=NIF_MESSAGE|NIF_ICON|NIF_TIP;m_tnid.uCallbackMessage=MYWM_NOTIFYICON;   //用户定义的回调消息 CString szToolTip; szToolTip=_T("托盘图标实例"); //鼠标在托盘上移动时显示文本_tcscpy(m_tnid.szTip, szToolTip); m_tnid.uID=IDR_MAINFRAME; HICON hIcon; hIcon=AfxGetApp()->LoadIcon(IDR_MAINFRAME);m_tnid.hIcon=hIcon; ::Shell_NotifyIcon(NIM_ADD,&m_tnid); if(hIcon)::DestroyIcon(hIcon);
响应托盘消息
LRESULT CMainFrame::HandleMessage(UINT uMsg, WPARAM wParam, LPARAM lParam){switch(uMsg){case WM_SHOWTASK:{if( lParam == WM_LBUTTONDBLCLK ){Shell_NotifyIcon(NIM_DELETE, &m_nid);//删除托盘图标ShowWindow(SW_SHOWNORMAL);}else if( lParam == WM_RBUTTONDOWN ){//如果在图标中单击右键则弹出声明式菜单POINT pt; GetCursorPos(&pt);//获取鼠标坐标  SetForegroundWindow(m_hWnd); //右击后点别地可以清除“右击出来的菜单”HMENU hMenu; //托盘菜单    win32程序使用的是HMENU,如果是MFC程序可以使用CMenuhMenu = CreatePopupMenu();//生成托盘菜单AppendMenu(hMenu, MF_STRING, WM_ONCLOSE, _T("退出"));  int cmd = TrackPopupMenu(hMenu, TPM_RETURNCMD, pt.x, pt.y, NULL, m_hWnd,  NULL);  if(cmd == WM_ONCLOSE)   {//退出程序m_nid.hIcon = NULL;Shell_NotifyIcon(NIM_DELETE, &m_nid);::PostQuitMessage(0);}}}break;default:break;return __super::HandleMessage(uMsg,wParam,lParam);
}

Windows系统托盘相关推荐

  1. 创建windows系统托盘应用程序

    #include <windows.h>#define IDR_PAUSE 12 #define IDR_START 13 LPCTSTR szAppClassName = TEXT(&q ...

  2. windows系统托盘tray

    electron tray是一种方法. Add icons and context menus to the system's notification area. python调用win32api也 ...

  3. windows系统托盘及托盘菜单

    window系统托盘及托盘菜单 下面是一个MFC写的wifi助手程序用于实现系统托盘的代码片段 void CWiFiAssistantDlg::OnClose() {  // TODO: 在此添加消息 ...

  4. Windows下QT实现托盘程序及系统托盘刷新

    目录 一.现象 二.托盘程序的QT实现 1.功能说明 2.使用的类 3.代码实现 三.windows系统托盘刷新 1.托盘刷新代码 2.托盘刷新代码的调用 一.现象 windows下当程序关闭,有时系 ...

  5. 20190703 windows 右下角系统托盘直接显示电量数字百分比

    电池电量在系统托盘显示 用 windows 平板的时候经常会遇到这样的情况,由于右下角系统托盘显示的电量图标不能清晰反馈出当前电量,所以每次都用用手指点一下电量图标来看具体电量,操作贼麻烦.况且手指粗 ...

  6. 将Windows Live Mail最小化到Windows 7中的系统托盘

    Are you frustrated that you can not minimize Windows Live Mail to the system tray in Windows 7? With ...

  7. 且看电脑高手如何优雅的使用windows系统

    有人问道: 我从 08 年的 MacBook 到现在的 MacBook Air,用 Mac 也有4年多了.苹果系统的优雅给人良好的体验,但是在单位和其他场合不可避免的要回归 Windows,请问有哪些 ...

  8. java对托盘加监听右击报错_java实现系统托盘示例

    桌面的系统托盘即当程序最小化或者关闭按钮程序并没有退出,而是最小化在任务状态区域(Windows系统),当鼠标点击那个区域所在的图标有提示以及其他的操作.在 Microsoft Windows 上,它 ...

  9. 刷新系统托盘(清除死掉的图标)修正版

    刷新系统托盘(清除死掉的图标)修正版 2009-08-06 18:50:06|  分类: Delphi |  标签: |字号大中小 订阅 type  TOSVersion = (osUnknown, ...

最新文章

  1. input type=file /,美化自定义上传按钮
  2. [Effective JavaScript 笔记]第29条:避免使用非标准的栈检查属性
  3. 《四世同堂》金句摘抄(四)
  4. Java Web学习总结(34)——拦截器和过滤器的差异总结
  5. 佳能MP259打印重影的问题始终无法得到彻底解决,今天终于找到方法了
  6. Qt QDataTime QString 两个类的使用
  7. [CMake] 头文件路径 动态库路径
  8. mysql 特殊字符集_特殊汉字“”引发的对于字符集的思考;mysql字符集;sqlalchemy字符集设置;客户端字符集设置;...
  9. Verilog入门2-用ise做38译码器和仿真
  10. matlab牛头刨床矩阵,MATLAB牛头刨床分析程序-课程设计
  11. easyUi combobox setValue 引起的关于js的坑
  12. 顺序存储二叉树和线索化二叉树
  13. libmudbus库使用的一二事
  14. 导览讲解 | 二维码语音讲解有什么优势?
  15. java实现生成二维码
  16. PLM,是一个英文缩写,有2个含义,一是表示产品生命周期管理(product lifecycle management,PLM),...
  17. VScode+keil插件-取代keil开发不要太爽了
  18. python甲骨文培训
  19. Ubuntu18状态栏调整位置,放置在屏幕下方
  20. electron-vue 引入electron-updater提示unexpected token

热门文章

  1. kafka --org.apache.kafka.common.config.ConfigException: No resolvable bootstrap urls given in bootst
  2. DolphinScheduler 邮件告警设置
  3. Qt Quick 之 PathView 详解
  4. Reabble – 出色的 Kindle RSS 在线阅读器
  5. python ios开发环境_程序员的macOS系列:Mac开发环境配置
  6. 贝叶斯分析好坏_贝叶斯估计对比于经典估计的优势分析与其局限性
  7. 有多少人用智能ABC,又有多少人知道这些!
  8. tpl怎么搞_TPL详解、使用
  9. Python数据可视化 Pyecharts 制作 Pie 饼状图
  10. 万卷书 - 快速写作 [Write Your Book in a Flash]