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_)