1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- #ifndef _ZEROT_TRAYICON_H
- #define _ZEROT_TRAYICON_H
- #define MYWM_SHOWMINBOX WM_USER + 2
- class ITrayIcon : public CCmdTarget
- {
- protected:
- DECLARE_DYNAMIC(ITrayIcon)
- NOTIFYICONDATA m_nid;
- public:
- ITrayIcon(UINT uID);
- ~ITrayIcon();
-
- void SetNotificationWnd(CWnd* pNotifyWnd, UINT uCbMsg);
-
- BOOL SetIcon(UINT uID);
- BOOL SetIcon(HICON hicon, LPCTSTR lpTip);
- BOOL SetIcon(UINT uID, LPCTSTR lpTip);
- BOOL SetIcon(LPCTSTR lpResName, LPCTSTR lpTip)
- {
- return SetIcon(lpResName ? AfxGetApp()->LoadIcon(lpResName) : NULL, lpTip);
- }
-
- BOOL SetTip(LPCTSTR lpTip);
-
- BOOL SetInfo(LPCTSTR lpInfo,LPCTSTR lpInfoTitle = NULL);
- BOOL SetStandardIcon(LPCTSTR lpszIconName, LPCTSTR lpTip)
- {
- return SetIcon(::LoadIcon(NULL, lpszIconName), lpTip);
- }
- virtual LRESULT OnTrayNotification(WPARAM uID, LPARAM lEvent);
-
- public:
- bool IsFlashing(){return bSuspending;}
- void SetMiniShow(BOOL bSet){bShowMinibox = bSet;}
- BOOL StartFlashing();
- BOOL StopFlashing();
- inline void SetIconInfos(const UINT &u1,const UINT &u2,const UINT &u3);
- inline void SetDefaultTip(LPCTSTR lpTip){_lpTip=lpTip;}
- protected:
- bool bSuspending;
-
- LPCTSTR _lpTip;
- UINT _utIcon[3];
- DWORD m_dwThreadID;
- HANDLE m_hThreadCtrl;
- HANDLE m_hThreadObj;
- BOOL bShowMinibox;
- void GetTrayRect(RECT &rc);
- BOOL IsWow64();
-
- int OpendThread();
- void TerminalThread();
- static DWORD WINAPI FlashingThread(LPVOID pVoid);
- };
- inline void ITrayIcon::SetIconInfos(const UINT &u1,const UINT &u2,const UINT &u3)
- {
- _utIcon[0] = u1;
- _utIcon[1] = u2;
- _utIcon[2] = u3;
- }
- #endif
|