www.pudn.com > SYSTEM_TRAY_SRC.rar > SYSTEMTRAY.H


///////////////////////////////////////////////////////////////////////////// 
// SystemTray.h : header file 
// 
// Written by Chris Maunder (chrismaunder@codeguru.com) 
// Copyright (c) 1998. 
// 
// This code may be used in compiled form in any way you desire. This 
// file may be redistributed unmodified by any means PROVIDING it is  
// not sold for profit without the authors written consent, and  
// providing that this notice and the authors name is included. If  
// the source code in  this file is used in any commercial application  
// then acknowledgement must be made to the author of this file  
// (in whatever form you wish). 
// 
// This file is provided "as is" with no expressed or implied warranty. 
// The author accepts no liability if it causes any damage to your 
// computer, causes your pet cat to fall ill, increases baldness or 
// makes you car start emitting strange noises when you start it up. 
// 
// Expect bugs. 
//  
// Please use and enjoy. Please let me know of any bugs/mods/improvements  
// that you have found/implemented and I will fix/incorporate them into this 
// file.  
 
#ifndef _INCLUDED_SYSTEMTRAY_H_ 
#define _INCLUDED_SYSTEMTRAY_H_ 
 
#include  
 
///////////////////////////////////////////////////////////////////////////// 
// CSystemTray window 
 
class CSystemTray : public CWnd 
{ 
// Construction/destruction 
public: 
    CSystemTray(); 
    CSystemTray(CWnd* pWnd, UINT uCallbackMessage, LPCTSTR szTip, HICON icon, UINT uID); 
    virtual ~CSystemTray(); 
 
    DECLARE_DYNAMIC(CSystemTray) 
 
// Operations 
public: 
    BOOL Enabled() { return m_bEnabled; } 
    BOOL Visible() { return !m_bHidden; } 
 
    // Create the tray icon 
    Create(CWnd* pParent, UINT uCallbackMessage, LPCTSTR szTip, HICON icon, UINT uID); 
 
    // Change or retrieve the Tooltip text 
    BOOL    SetTooltipText(LPCTSTR pszTooltipText); 
    BOOL    SetTooltipText(UINT nID); 
    CString GetTooltipText() const; 
 
    // Change or retrieve the icon displayed 
    BOOL  SetIcon(HICON hIcon); 
    BOOL  SetIcon(LPCTSTR lpszIconName); 
    BOOL  SetIcon(UINT nIDResource); 
    BOOL  SetStandardIcon(LPCTSTR lpIconName); 
    BOOL  SetStandardIcon(UINT nIDResource); 
    HICON GetIcon() const; 
    void  HideIcon(); 
    void  ShowIcon(); 
    void  RemoveIcon(); 
    void  MoveToRight(); 
 
    // For icon animation 
    BOOL  SetIconList(UINT uFirstIconID, UINT uLastIconID);  
    BOOL  SetIconList(HICON* pHIconList, UINT nNumIcons);  
    BOOL  Animate(UINT nDelayMilliSeconds, int nNumSeconds = -1); 
    BOOL  StepAnimation(); 
    BOOL  StopAnimation(); 
 
    // Change menu default item 
    void GetMenuDefaultItem(UINT& uItem, BOOL& bByPos); 
    BOOL SetMenuDefaultItem(UINT uItem, BOOL bByPos); 
 
    // Change or retrieve the window to send notification messages to 
    BOOL  SetNotificationWnd(CWnd* pNotifyWnd); 
    CWnd* GetNotificationWnd() const; 
 
    // Default handler for tray notification message 
    virtual LRESULT OnTrayNotification(WPARAM uID, LPARAM lEvent); 
 
// Overrides 
    // ClassWizard generated virtual function overrides 
    //{{AFX_VIRTUAL(CSystemTray) 
	protected: 
	virtual LRESULT WindowProc(UINT message, WPARAM wParam, LPARAM lParam); 
	//}}AFX_VIRTUAL 
 
// Implementation 
protected: 
    void Initialise(); 
 
    BOOL            m_bEnabled;   // does O/S support tray icon? 
    BOOL            m_bHidden;    // Has the icon been hidden? 
    NOTIFYICONDATA  m_tnd; 
 
    CArray m_IconList; 
    static UINT  m_nIDEvent; 
    UINT         m_uIDTimer; 
    int          m_nCurrentIcon; 
    COleDateTime m_StartTime; 
    int          m_nAnimationPeriod; 
    HICON        m_hSavedIcon; 
    UINT         m_DefaultMenuItemID; 
    BOOL         m_DefaultMenuItemByPos; 
 
// Generated message map functions 
protected: 
	//{{AFX_MSG(CSystemTray) 
	afx_msg void OnTimer(UINT nIDEvent); 
	//}}AFX_MSG 
 
    DECLARE_MESSAGE_MAP() 
}; 
 
 
#endif 
 
/////////////////////////////////////////////////////////////////////////////