www.pudn.com > mu_explorer.rar > BBSystemTray.h


// BBSystemTray.h: interface for the CBBSystemTray class. 
// 
////////////////////////////////////////////////////////////////////// 
 
#if !defined(AFX_BBSYSTEMTRAY_H__DFF71E02_F359_457E_B2BD_DACC1311C222__INCLUDED_) 
#define AFX_BBSYSTEMTRAY_H__DFF71E02_F359_457E_B2BD_DACC1311C222__INCLUDED_ 
 
#if _MSC_VER > 1000 
#pragma once 
#endif // _MSC_VER > 1000 
 
#include  
 
///////////////////////////////////////////////////////////////////////////// 
/* 
 
 
 
 
	功能:	托盘图标实现类 
			通过本类,可以方便简单的管理好托盘图标 
	整理:	邓振波 
	E_Mail:	bozi@china.com 
	时间:	2001.4.20 
	使用: 
			 
			1。定义一个类CBBSystemTray m_wndSystemTray 
				如果是在整个应用程序中需要用,建议在MaiFrame中定义 
			2。调用Create方法,如无特殊的需要,可以用 
				Create(LPCTSTR szToolTipText, HICON hIcon, UINT uMenuID) 
				指明提示的信息,图标句柄,和右键显示的菜单ID。 
			3。可选项:设置默认的菜单,即双击图标时候执行的菜单操作 
			4。如果需要更改提示内容、图标以及删除图标等等,请用相应的函数 
 
	说明:	本类析构的时候自动删除图标,无需手工删除图标 
 
 
 
 
 
 
 
 
*/ 
//////////////////////////////////////////////////////////////////////////// 
 
 
 
 
 
//自定义的默认的消息处理消息 
#define		WM_DEFAULT_NOTIFY_MESSAGE	WM_USER+289 
 
class CBBSystemTray : public CWnd 
{ 
// Construction/destruction 
public: 
    CBBSystemTray(); 
    virtual ~CBBSystemTray(); 
    DECLARE_DYNAMIC(CBBSystemTray) 
// Operations 
public:	 
	// 建立图标 
	BOOL Create(LPCTSTR szToolTipText,HICON hIcon,UINT uMenuID);    
    // 建立图标 
    Create(CWnd* pParent, UINT uCallbackMessage, LPCTSTR szTip, HICON icon, UINT uID); 
     
	//改变提示 
    BOOL    SetTooltipText(LPCTSTR pszTooltipText);//改变提示 
    CString GetTooltipText() const;//得到提示文本 
 
    //改变图标 
    BOOL  SetIcon(HICON hIcon);//改变图标 
    BOOL  SetIcon(UINT nIDResource);//改变图标 
	//获得图标 
    HICON GetIcon() const;//获得图标 
    void  RemoveIcon();//删除图标 
 
     
    void GetMenuDefaultItem(UINT& uItem, BOOL& bByPos);//得到默认图标的项 
    BOOL SetMenuDefaultItem(UINT uItem, BOOL bByPos=TRUE);//设置默认图标 
 
     
    BOOL  SetNotificationWnd(CWnd* pNotifyWnd);//设置自定义消息处理的窗口,如无特殊的需要,一般用默认处理即可 
    CWnd* GetNotificationWnd() const;//获得自定义消息处理的窗口 
 
    //默认的处理Tray消息的过程,如果需要,可以重载 
    virtual LRESULT OnTrayNotification(WPARAM uID, LPARAM lEvent);//默认的处理Tray消息的过程,如果需要,可以重载 
 
// Overrides 
    // ClassWizard generated virtual function overrides 
    //{{AFX_VIRTUAL(CBBSystemTray) 
	protected: 
	virtual LRESULT WindowProc(UINT message, WPARAM wParam, LPARAM lParam); 
	//}}AFX_VIRTUAL 
 
// Implementation 
protected: 
	BOOL            m_bAdded;   //图标是否存在 
	NOTIFYICONDATA  m_tnd;	//主要的实现图标操作的结构		 
	UINT	m_nDefaultMenuItemID;//默认菜单的ID 
	BOOL	m_bDefaultMenuItemByPos;//是否当前位置的项	 
	BOOL Init(); 
// Generated message map functions 
protected:	 
	//{{AFX_MSG(CBBSystemTray) 
	//}}AFX_MSG 
 
    DECLARE_MESSAGE_MAP() 
}; 
 
 
#endif // !defined(AFX_BBSYSTEMTRAY_H__DFF71E02_F359_457E_B2BD_DACC1311C222__INCLUDED_)