/*------------------------------------------------------------------------------*\
 =============================
   模块名称: TrayNotify.h
 =============================

 [目的]
 
   方便任务栏托盘区图标的使用.

 [描述]
 
   这是一个封装了任务栏托盘区图标所有操作的类，有了它就可以很方便地控制任务栏
   托盘区图标。
 
 [用法]
 
   这个模块用法很简单，我想用不着更多的说明. :-)

 [依赖性]

   无

 [修改记录]
 
  日期:     01-10-7  
  版本:     1.01       
  作者:     Brant Q
  备注:
    	
 [版权]
	
	  2000-2002  115软件工厂  版权所有

 [声明]
     
	  此软件为免费软件,源代码公开。允许个人使用和修改此代码而无需任何授权,但
   禁止用于商业目的以及任何非个人行为.

   如果你在使用了此代码之后能发给我一封email,我将非常高兴.

   如有疑问或建议请通过

   1.电子邮件:cola_tin@163.net
   2.个人主页:http://115fac.yeah.net

   与我联系.
   
                                              
\*------------------------------------------------------------------------------*/

#ifndef _TRAYNOTIFY_H_
#define _TRAYNOTIFY_H_

class CTrayNotify
{
public:
	
	CTrayNotify();
	virtual    ~CTrayNotify();

    //设置和得到图标
	void       SetIcon(const HICON hIcon,BOOL bEnable=TRUE);
	HICON      GetIcon() const;

	//设置和得到消息
	void       SetMsg(UINT uMsg,BOOL bEnable=TRUE);
	UINT       GetMsg();

    //设置和得到提示
	void       SetTip(const char *szTip,BOOL bEnable=TRUE);
	void       GetTip(char* szTip,UINT uTxtLen) const;

	//设置和得到关联的窗口句柄
	BOOL       SetHwnd(const HWND hWnd);
	HWND       GetHwnd() const;

	//设置和得到ID号
	void       SetID(const UINT uID);
	UINT       GetID() const;
	
	//设置和得到uFlags
	void       SetFlag(UINT uFlag);
	UINT       GetFlag() const;
	
	//当用调用过SetIcon之类的函数后，不会立即更新，而必须调用此函数更新
	BOOL       Refresh();

	//控制图标是否可见
	BOOL       ShowIcon(BOOL bShow);

	//修改并更新
	BOOL       Modify(const NOTIFYICONDATA& nid);

	//得到NOTIFYICONDATA数据结构
	void       GetNid(NOTIFYICONDATA* pNid) const;

	//图标是否可见
	BOOL       IsIconShow() const;

	//去掉图标，并将NOTIFYICONDATA结构清零
	void       Reset();

protected:

	BOOL m_bShow;

	NOTIFYICONDATA m_nid;

private:
	
};


#endif
//文件尾