Chinaunix首页 | 论坛 | 博客
  • 博客访问: 8182677
  • 博文数量: 1227
  • 博客积分: 10026
  • 博客等级: 上将
  • 技术积分: 20273
  • 用 户 组: 普通用户
  • 注册时间: 2008-01-16 12:40
文章分类

全部博文(1227)

文章存档

2010年(1)

2008年(1226)

我的朋友

分类: C/C++

2008-03-17 14:07:25

下载本文示例代码
有的网友开发了自己的托盘类,实现起来略微烦琐。在这里我向大家推荐一个实现简单而十分有效的托盘类(是我在一本书中学来的)。
1、 把TrayIcon.cpp和TrayIcon.cpp拷贝到你的项目目录,并添加到项目中。


2、 在DemoDlg.h中加入#include “TrayIcon.h”
3、 通过类向导向类CDemoDlg添加成员变量CTrayIcon m_CTrayIcon;
4、 建立菜单资源,使其ID为:IDR_DEMO,设计菜单:

向demo1和exit添加事件处理程序:
void CDemoDlg::OnFileDemo1()
{
 ShowWindow(SW_SHOW);
 m_TrayIcon.RemoveIcon();
}
 
void CDemoDlg::OnFileExit()
{
 m_TrayIcon.RemoveIcon();
 OnCancel();
}
5、 在DemoDlg.cpp中自定义消息 #define WM_ICON_NOTIFY WM_USER+10,并在声明消息处声明消息处理函数:
BEGIN_MESSAGE_MAP(CDemoDlg, CDialog)
 ......
 ON_MESSAGE(WM_ICON_NOTIFY, OnTrayNotification)
 ……
END_MESSAGE_MAP()
在类CDemoDlg中增加成员函数:
LRESULT OnTrayNotification(WPARAM wParam,LPARAM lParam);
实现部分:
LRESULT CDemoDlg::OnTrayNotification(WPARAM wParam,LPARAM lParam)
{
 return m_TrayIcon.OnTrayNotification(wParam,lParam);
}
6、 在对话框添加“开始”按扭,并双击“开始”按扭编辑处理程序:

void CDemoDlg::OnBnClickedButton1()
{
 m_TrayIcon.Create(this,WM_ICON_NOTIFY,"鼠标指向时显示",m_hIcon,IDR_DEMO); //构造
 ShowWindow(SW_HIDE); //隐藏窗口
}

7、 可以灵活使用其它类成员函数。如:SetIcon改变图标,可以通过Timer消息实现托盘图标动画效果。
8、 删除托盘图标:m_TrayIcon.RemoveIcon();
下载本文示例代码
阅读(1086) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~