www.pudn.com > PBMS.rar > MyTray.h
// MyTray.h: interface for the MyTray class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_MYTRAY_H__D609EE89_A47B_4980_99C0_4CC228C4EAB5__INCLUDED_)
#define AFX_MYTRAY_H__D609EE89_A47B_4980_99C0_4CC228C4EAB5__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 100
///////////////////////////////////////////////////////////////////////
//------------------Copyright@wolfsky 2003-3-25---------------------
//MyTray类接口说明:在这里这是基于MFC程序可以用的代码.
//要为一个应用程序做一个托盘,可以在MYAAP类或CMainFrame中申明一个MyTray对象
//当点击程序某菜单或是某按钮后为了变成托盘,并将主窗口隐藏,这一切工作都由该
//类封装好了,用户只需在点击后的处理程序(推荐在按钮处理程序或截获最小化处
//理程序处)处先通过设置对象属性mmtay.Property(),
//然后mmtray.SetIcon()即可,不过在MYAPP类或CMainFrame中要重载
//WindosProc函数,在里面处理WM_MYTRAY(自己定义的,而非系统,
//可以随便定义)消息,所谓WM_MYTRAY消息是当前用户点击托盘后,系统产生的
//消息。
//第二步:做一个菜单,是当点击托盘图标后产生的菜单,并用Class Wizard
//将该菜单添加到MYAPP类或CMainFrame中,在MYAPP类或CMainFrame中用
//class Wizard为菜单上的各项做处理。
//注:这里有一个技巧:由于在该类中把菜单第一项设为默认项,即使用该类
//可以把双击图标要产生的消息放在这个菜单第一项!
//如本例中的OnFileResume和OnFileMin
//必须mmtray.DealMessage(WPARAM wParam, LPARAM lParam)来处理各种消息。
class MyTray
{
public:
//显示主窗口并且把托盘图标删除
void ResumeMain();
MyTray(HMENU hmenu2,HINSTANCE h,HWND hwnd,UINT uID,UINT message,CHAR *tip);
MyTray();
virtual ~MyTray();
//设置托盘各个属性
void SetProper(UINT menuID,UINT uID,UINT message,CHAR *tip = "提示信息");
//处理系统返回对图标的操作
void DealMessage(WPARAM wParam, LPARAM lParam);
//--hwnd:托盘所对应的窗口,uID:图标ID值,tip:提示信息
//--message:操作托盘图标时系统返回的消息
void DeleteIcon();//删除托盘
void SetIcon();//显示托盘
void SetTip(char *tip = "提示信息");
void SetInst(HINSTANCE);
private:
HMENU hmenu;
NOTIFYICONDATA nid;//设置托盘属性的结构体
HINSTANCE hInst;//进程句柄
};
#endif // !defined(AFX_MYTRAY_H__D609EE89_A47B_4980_99C0_4CC228C4EAB5__INCLUDED_)