windows程序托盘图标以及消息提示--示例程序
来源:互联网 发布:软件开发合同 性质 编辑:程序博客网 时间:2024/05/21 21:46
之前两个博客介绍一些基本姿势,都是msdn上的,今天就介绍一下如何使用吧。
为了简单起见,还是创建一个MFC based on dialog 功能吧。
1创建托盘图标,封装了成一个函数:
NOTIFYICONDATA m_nid;bool SetupTrayIcon(HWND m_hWnd){ m_nid.cbSize=sizeof(NOTIFYICONDATA);// 结构大小 m_nid.hWnd=m_hWnd; // 接收 托盘通知消息 的窗口句柄 m_nid.uID=IDR_MAINFRAME; m_nid.uFlags=NIF_MESSAGE//表示uCallbackMessage 有效 m_nid.uCallbackMessage=WM_PROC; // 消息被发送到此窗口过程 m_nid.hIcon=::LoadIcon(::GetModuleHandle(NULL),MAKEINTRESOURCE(IDR_MAINFRAME)); strcpy(m_nid.szTip,"我的任务栏程序"); // 提示文本 return 0!=Shell_NotifyIcon(NIM_ADD,&m_nid); }
2消息提醒
如果你仔细阅读过NOTIFYICONDATA,你肯定会恍然大悟,气泡提示不是针对所有的系统的。
XP上当然一点作用没有,WIN7上是气泡提醒,而在WIN10上就变成了从侧面滑入的形式(Metro式的通知方式)。但是代码是通用的:
BOOL ShowBalloonTip(LPCTSTR szMsg,LPCTSTR szTitle,DWORD dwInfoFlags=NIIF_INFO,UINT uTimeout=1000){ m_nid.cbSize=sizeof(NOTIFYICONDATA); m_nid.uFlags = NIF_INFO; m_nid.uVersion = NOTIFYICON_VERSION; m_nid.uTimeout = uTimeout; m_nid.dwInfoFlags = dwInfoFlags; strcpy(m_nid.szInfo,szMsg ? szMsg : _T("")); strcpy(m_nid.szInfoTitle,szTitle ? szTitle : _T("")); return 0!=Shell_NotifyIcon(NIM_MODIFY, &m_nid);}
3删除托盘图标
简单的很:
Shell_NotifyIcon(NIM_DELETE,&m_nid);
不多说了 上一个提示对比图吧:
通用的代码 不同的效果
1 0
- windows程序托盘图标以及消息提示--示例程序
- windows程序托盘图标以及消息提示--示例程序
- windows程序托盘图标以及消息提示--基本知识(NOTIFYICONDATA)
- windows程序托盘图标以及消息提示--基本知识(Shell_NotifyIcon)
- 建立程序托盘图标
- winform程序托盘图标
- gtk托盘图标程序
- Qt5 实现程序图标以及动态托盘闪烁图标
- 一个消息提示托盘程序的开发历程
- 浅谈c#实现隐藏任务栏图标的Windows托盘程序
- 浅谈c#实现隐藏任务栏图标的Windows托盘程序
- Windows关闭程序托盘图标不能消失的原因
- MFC 设计托盘图标程序
- VC++设计托盘图标程序
- Windows托盘程序实现
- windows托盘程序和泡泡提示简单攻略
- windows托盘程序和泡泡提示简单攻略
- java托盘提示小程序
- java多线程
- 20151031考试总结
- Linux中的gps编程
- 创建内部类的实例方法
- 网页性能管理详解
- windows程序托盘图标以及消息提示--示例程序
- 冒泡排序优化
- C#装箱和拆箱
- Android触摸屏事件派发机制详解与源码分析一(View篇)
- ReactiveCocoa实战: 模仿 "花瓣",重写 LeanCloud Rest Api的iOS REST Client.
- App.Config详解
- 初始Hive —— 深入浅出学Hive
- 面试题:android四大组件
- C#学习之路,学习笔记 第六章 函数