最近突然想看看托盘的实现,花了点时间在Google上搜索了一下,原来托盘的实现也不是很复杂哈,主要分以下几步走:
(1)初始化
(2) 添加/修改/移除图标
(3)添加托盘消息响应函数
(4)添加菜单消息处理函数
初始化主要做的事情就是初始化NOTIFYICONDATA成员变量,最重要的是为其中uCallbackMessage添加响应消息,并添加消息映射,在第3步中添加其响应函数,第2步实际上是调用Shell_NotifyIcon函数来处理托盘图标,第四步就是在托盘的菜单中为选择的菜单项而产生的命令消息(WM_COMMAND)添加映射和响应函数。
最后的效果如下图:
PS:大家可以参照一下这几个帖子,说的比较清晰透彻了,在此一并感谢这几位作者。
参考:
(1)VC系统托盘编程指南 http://dev.firnow.com/course/3_program/vc/vc_js/200832/102353.html
(2)系统托盘编程 http://blog.csdn.net/hulin0229/archive/2009/02/15/3894268.aspx
(3)如何触发右键菜单的消息 http://www.chinaitpower.com/A/2005-02-14/108039.html