window系统托盘及托盘菜单
下面是一个MFC写的wifi助手程序用于实现系统托盘的代码片段

void CWiFiAssistantDlg::OnClose()
{
 // TODO: 在此添加消息处理程序代码和/或调用默认值
 ExitPtDlg exitPtDlg;
 int varReturn = exitPtDlg.DoModal();
 if(varReturn == IDOK)
 {
  preExit();
  CDialogEx::OnClose();
 }
 else //在通盘显示程序图标
 {
  NOTIFYICONDATA tnd;
  tnd.cbSize=sizeof(NOTIFYICONDATA);
  tnd.hWnd=this->m_hWnd; //要显示托盘图标的窗口句柄
  tnd.uID=IDR_MAINFRAME; //程序图标资源ID
  tnd.uFlags=NIF_MESSAGE|NIF_ICON|NIF_TIP;
  tnd.uCallbackMessage=WM_MYMESSAGE_CLICK; //自定义消息,当图标发送事件时会向窗口发送此消息,会在窗口过程函数接收到此消息,接收到消息时进行你的处理
  tnd.hIcon=LoadIcon(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDR_MAINFRAME));
  lstrcpy(tnd.szTip, L"WiFi助手");//图标提示为”WiFi助手”
  Shell_NotifyIcon(NIM_ADD,&tnd);//向任务栏添加图标
  ShowWindow(SW_HIDE);
 }
}
LRESULT CWiFiAssistantDlg::OnMyMessageClick(WPARAM wParam, LPARAM lParam) //MFC里的自定义消息处理函数
{
 
 UINT uID;//发出该消息的图标的ID
 UINT uMouseMsg;//鼠标动作
 POINT pt;
 uID=(UINT) wParam;
 uMouseMsg=(UINT) lParam;
 if(uMouseMsg == WM_LBUTTONDBLCLK)//如果是双击左键
 {
  switch(uID)
  {
   case IDR_MAINFRAME://如果是我们的图标
    GetCursorPos(&pt);//取得鼠标位置
    ShowWindow(SW_SHOWNORMAL);
    SetForegroundWindow();
   break;
  }
 }
 else if(uMouseMsg == WM_RBUTTONDOWN)//如果是单击右键
 {
  CMenu menuTray, *pPopup;
  CPoint point;
  GetCursorPos(&point);
  menuTray.LoadMenuW(IDR_MENU1); //从资源载入菜单
  pPopup=menuTray.GetSubMenu(0); //获得子菜单指针
  pPopup->TrackPopupMenu(TPM_LEFTALIGN|TPM_RIGHTBUTTON, point.x, point.y,this); //设置菜单显示位置并显示
  pPopup->Detach();
  menuTray.DestroyMenu();
 }
 return 0;
}
void CWiFiAssistantDlg::preExit()//程序退出时调用
{
 NOTIFYICONDATA tnid;
 tnid.cbSize=sizeof(NOTIFYICONDATA);
 tnid.hWnd=GetSafeHwnd();
 tnid.uID=IDR_MAINFRAME;//保证删除的是我们的图标
 Shell_NotifyIcon(NIM_DELETE, &tnid);
}
//菜单项对应处理函数
void CWiFiAssistantDlg::OnMenuShow()
{
 SetForegroundWindow();
 ShowWindow(SW_SHOWNORMAL);
 // TODO: 在此添加命令处理程序代码
}
//菜单项对应处理函数
void CWiFiAssistantDlg::OnMenuExit()
{
 // TODO: 在此添加命令处理程序代码
 preExit();
 OnOK();
}

windows系统托盘及托盘菜单相关推荐

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

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

  2. Qt 实现系统托盘,托盘菜单,托盘消息

    欢迎关注公众号可以查看更多完整文章 Qt 实现系统托盘,托盘菜单,托盘消息 系统托盘就是运行的某个程序在电脑右下角的小图标,相信大家都很熟悉.QT 提供了QSystemTrayIcon类用于实现程序的 ...

  3. qt 最小化到托盘linux,Qt窗口最小化到托盘,托盘菜单控制

    作为Qt初学者,最近在编写窗口最小化到托盘功能代码的时候遇到了点阻碍. Qt自带的demo实现的功能太过繁琐,涉及知识点又太杂,很难理出最核心的思路.网上的文章代码也很多脱骨于这个demo,注释说明太 ...

  4. 半小时玩转QT桌面系统托盘(含托盘消息)

    桌面托盘是常用的功能,对于QT,为桌面托盘提供了很多接口可以使用,满足开发中遇到的托盘相关的功能. 以下文章介绍QT的桌面系统托盘功能的开发实例. 系统托盘:用户在最小化程序的时候并没有真正关闭程序, ...

  5. html文件如何设置右键菜单,windows系统使用小技巧,创建属于自己的右键新建菜单-右键菜单设置...

    在计算机的使用过程中,用户会经常的使用一些文件件,而为了用户的方便,Windows系统在桌面的右键快捷菜单设置了一些内置的文件类型,比如:"WinZip"."文本文档&q ...

  6. opencore 启动总是在win_单双硬盘装Windows/Mac双系统用OpenCore引导菜单添加Windows引导项...

    本教程基于你的OpenCore引导已经能正常进Mac黑苹果系统,如果你的系统还不能正常进入黑苹果Mac系统,请参照此篇文章设置http://imacos.top/2020/04/04/1616/ Op ...

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

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

  8. linux远程打开windows程序,为新手讲解Linux和Windows系统的远程桌面访问知识

    很多新手都是使用Linux和Windows双系统的,它们之间的远程桌面访问是如何连接的,我们就为新手讲解Linux和Windows系统的远程桌面访问知识,包括所使用的软件及方法.本文所使用的Linux ...

  9. 在 Windows 系统下常用的 bat 脚本分享

    以网络配置举例说明,网络连接默认情况下都是 DHCP(自动获取 IP 和 DNS 地址) 模式,但很多情况下,需要我们设置为指定的静态 IP 和 DNS 地址.在 Windows 系统中通常我们都是在 ...

最新文章

  1. 在图像变换中用最小二乘法求解仿射变换参数
  2. 进行三万多次地震训练后,他们发现了快速预测震动强度的新方法
  3. 从JS数组中删除重复的值[duplicate]
  4. 【Python-ML】SKlearn库密度聚类DBSCAN模型
  5. 中石油训练赛 - Get Strong(dfs双向搜索+二分)
  6. 腾讯,字节等大厂面试真题汇总,深夜思考
  7. Cluster - LB - haproxy
  8. 【原】Redis事务管理
  9. 你以为面试官问的是分布式缓存,其实他想问……
  10. VS2010生成的文件在别的机器上运行提示“丢失MSVCR100D.dll”
  11. jq追加html属性,jQuery 操作 HTML 元素和属性的方法
  12. vue组件库开发遇到的regeneratorRuntime is not defined
  13. 网易版服务器我的世界装模组的文件包在哪里,网易我的世界怎么加mod【给网易我的世界里装mod】...
  14. [4G/5G/6G专题基础-157]: 无线数据承载DRB与无线信令承载SRB
  15. 1419. Minimum Number of Frogs Croaking
  16. 京东云PostgreSQL在GIS场景的应用分享
  17. Property ‘validationMessageSource‘ threw exception
  18. 计算机类专业教指委委员名单,教育部高等学校计算机类专业教学指导委员会举办《高校计算机系统能力培养教学研讨会》...
  19. 【区块链】从一笔交易看区块链运作流程
  20. nRF24L01+数据手册

热门文章

  1. 挺好听的奥运征集歌曲,不过还是比较希望奥运歌曲由我们国家自己制作
  2. 浅谈函数式编程与 Java Stream
  3. python语言原理_python语言实现
  4. JavaScript 异常处理及异常收集
  5. 树莓派001-购买树莓派
  6. ip地址求网络号、子网掩码、主机数、主机数位数和子网主机地址范围最全详解(含例题)
  7. 无论发生什么都不要失望,不要丢掉希望
  8. HTML中clospan不起作用,HTML colspan和rowspan不起作用
  9. MaxScript建模(四)--自定义函数
  10. 招商引资头条:长沙发布22条措施促进就业;山西晋中签约17个项目