首先介绍一下基本知识:
NOTIFYICONDATA结构体,语法如下:

typedef struct _NOTIFYICONDATA {
DWORD cbSize;
HWND hWnd;
UINT uID;
UINT uFlags;
UINT uCallbackMessage;
HICON hIcon;
TCHAR szTip[64];
DWORD dwState;
DWORD dwStateMask;
TCHAR szInfo[256];
union {
UINT uTimeout;
UINT uVersion;
};
TCHAR szInfoTitle[64];
DWORD dwInfoFlags;
GUID guidItem;
} NOTIFYICONDATA, *PNOTIFYICONDATA;

cbSize
按字节计算的结构体。

hWnd
接收通知区域消息的窗口句柄。

uID
应用程序定义的任务栏图标的ID。Shell使用窗口句柄+uID或者GUID的方式来标识Shell_使用到的图标。你可以使用不同的uID来把多个图标关联到一个窗口句柄上。如果指定了GUID,那么uID就会被忽略。

uFlags
一个标志,用来表示结构体中剩下的字段哪些是可用的,或者提供提示条应当如何显示的 附加信息。可以是下面一些值的组合:

uCallbackMessage
应用程序定义的消息ID。系统使用这个ID向由hWnd指定的窗口发送通知消息。当鼠标事件在图标区域发生、鼠标在图标的相关区域晃悠时,发送这个消息;当用鼠标或者键盘选中了图标、或者这些行为发生在气泡通知区域时,发送消息。

uVersion
当uVersion为0或者NOTIfYICON_VERSION时,消息的wParam参数包含了发生事件的图标的ID。这个ID可以是32字节长。lParam参数包含了与该事件相关的鼠标或者键盘消息。例如,当鼠标指针经过任务栏图标时,发送WM_MOUSEMOVE消息。
当uVersion为NOTIFYICON的时候,应用程序通过uCallbackMessage成员继续接收应用程序自定义消息的通知事件,但是lParam和wParam参数意义发生了改变:

hIcon
将要添加/修改/删除的图标句柄。
使用LoadIconMetric函数来确定装载了正确的图标并且被适当的缩放。

szTip
一个标准提示字符串,以NULL结尾。包括结尾NULL字符,最多可以64个。
对于2000及其以后的版本,szTip可以容纳包括NULL结尾在内的128个字符。

dwState
2000及其以后的系统支持此项。图标的状态。可以是下面的一个或者几个值。

dwStateMask
2000及其以后的系统支持。指定了dwState的哪些位是可以被检索或者修改的。取值和dwState相同。例如,dwStateMask设置了NIS_HIDDEN,则当图标的共享字节被忽略时,无论dwState是什么值,只有MIS_HIDDEN状态可以修改。(这块英文没看懂。)

szInfo
2000及其以后的系统支持。气泡通知中显示的文本,该文本以NULL结尾。最多可以有包括NULL在内的256个字符,但是因为要调整区域所以应该限制在200个以内。如果要从UI删除气泡通知,可以(用NIM_DELETE)删除图标,或者在uFlags中设置NIF_INFO并且设置szInfo为空字符串。

uTimeout
在Vista中不赞成使用这个成员。通知显示的时间现在基于系统的辅助功能设置。

hBalloonIcon
Vista及其之后的系统支持。程序提供的自定义通知图标的句柄,必须独立于通知区域图标。如果这个字段不为NULL,并且dwInfoFlags设置为NIF_USER,那么这个图标会被用作通知图标。如果这个成员为NULL,合法的动作就是继续执行。

同样,你只要知道上诉结构体的存在即可,我们可以查询msdn来了解每个成员如何赋值呢。这是windows程序托盘图标的基本知识

windows程序托盘图标以及消息提示--基本知识(NOTIFYICONDATA)相关推荐

  1. Windows程序员需要掌握的计算机硬件知识——存储器

    我是荔园微风,作为一名在IT界整整25年的老兵,今天总结一下计算机中的存储器问题.关于这一部分,我想说的是,你要真正理解这块内容,我建议你要不就从硬件本身入手,或者大量做相关题目,不然你仅是看书和资料 ...

  2. 微信小程序如何制作消息提示框---wx.showToast(Object object)

    代码 wx.showToast({title: '你已做完',icon: 'error',duration: 2000}) wx.showToast({title: '提示内容',icon: 'err ...

  3. 取消idea显示在windows任务栏右下角消息提示图标设置

    idea的setting中有一个设置,路径: file---setting---appearance&behavior----notifications 取消enable system not ...

  4. windows程序消息机制(Winform界面更新有关)--转

    1. Windows程序消息机制 Windows GUI程序是基于消息机制的,有个主线程维护着消息泵.这个消息泵让windows程序生生不息. Windows程序有个消息队列,窗体上的所有消息是这个队 ...

  5. windows程序消息机制(Winform界面更新有关)

    1. Windows程序消息机制 Windows GUI程序是基于消息机制的,有个主线程维护着消息泵.这个消息泵让windows程序生生不息. Windows程序有个消息队列,窗体上的所有消息是这个队 ...

  6. Windows编程 Windows程序的生与死(下)

    再谈程序之"死" 记得在第二回中我对程序的"死"只是一句话带过,因为我还没有铺垫好,好了现在我们可以详细的分析一下这个过程了. 这还要从while消息循环说起, ...

  7. Windows编程 第四回 Windows程序的生与死(下)

    致歉 很抱歉,读者看到的这篇文章将是我写的最没什么条理的一篇了,由于这一块儿内容是所有Windows程序的核心与基础,所以我分了三回来写.我想讲 得既易懂有又丰富,无奈本人才疏学浅,每每一提笔就要查很 ...

  8. 打怪升级之Windows程序基本观

    图片来源:电路板娘画师SYEGO Win程序开发流程 前排提醒,这是作者阅读<深入浅出MFC>(侯俊杰,华东师大出版社)的一些笔记,有兴趣的话请读原本或者前往window官方文档细学. W ...

  9. C# 窗口背景 短消息提示

    一 窗口背景 实现方法: ① 自己绘制一个圆角矩形背景: ② 将外围区域透明化: this.BackColor=Color.White; this.TransparencyKey=Color.Whit ...

最新文章

  1. 【安全加密技术】 对称加密
  2. JavaScript武力值飙升!用TensorFlow.js轻松实现在浏览器里搞深度学习......
  3. 风向变了 网络安全又占股市风口
  4. Apache动态编译安装模块mod_rewrite
  5. 用Kubernetes部署超级账本Fabric的区块链即服务(1)
  6. 笔记-项目质量管理-质量保证和质量控制
  7. WPF技术触屏上的应用系列(三): 视频播放器的使用及视频播放、播放、暂停、可拖动播放进度效果实现...
  8. 2018年暑假第四次周赛-图论部分题解
  9. 标准C++类std::string的内存共享和Copy-On-Write(写时拷贝)
  10. IntelliJ IDEA 的 Build Project/Build Module/构建项目/构建模块
  11. oracle的学生,Oracle做学生信息系统的脚本
  12. HDU-1255 覆盖的面积 矩形面积交
  13. win7局域网计算机 慢,win7系统局域网传输速度很慢的方法介绍
  14. 矩形脉冲信号合成_实验10 矩形脉冲信号分解
  15. C语言刷题6:给定b的值,输入a和m,求a*b和a^m的值
  16. 人工智能Java SDK:图片分类(支持imagenet数据集分类)
  17. VINS fusion软件架构分析(4)---后端处理processMeasurements()功能函数概览
  18. 带附件的邮件的发送方法
  19. 机器学习 —— 支持向量机
  20. 数据库建表时,对于字段的数据类型的选择

热门文章

  1. 通过阿里云拉取Google云上的镜像
  2. 万树IT:初学java开发用什么工具好
  3. 四暗四国军棋之捉放曹
  4. android 屏幕触摸事件及处理机制解读
  5. CSDN博客中嵌入背景音乐
  6. utu2440 gdbserver 搭建
  7. Java案例----双色球中奖分析
  8. OOA、OOD、OOP分别是什么?
  9. 【Unity之c#专题篇】—核心章题单实践
  10. 51单片机(STC89C52RC) lcd1602 4线接法+经典IO扩展综合实验