⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 systemtray.h

📁 PCI7505的通信编程
💻 H
字号:
#if !defined(AFX_SYSTEMTRAY_H__086B0CB1_89CD_11D2_9E52_52544C303E22__INCLUDED_)
#define AFX_SYSTEMTRAY_H__086B0CB1_89CD_11D2_9E52_52544C303E22__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// SystemTray.h : header file
//
#include <afxtempl.h>
//
/////////////////////////////////////////////////////////////////////////////

struct MENUMESSAGE
{
	WORD m_wMessage;//激活菜单的消息
	UINT m_uMenuID;//菜单资源
	int m_nSubMenu;//子菜单项
	HMENU m_hMenu;//菜单句柄
	HWND m_hMenuWnd;//处理菜单命令的窗口
};

// CSystemTray window
class CSystemTray : public CWnd
{
// Attributes
protected:
//@**#---2004-04-08 20:57:28 (注释: X Vince)---#**@
//typedef struct _NOTIFYICONDATA { 
//    DWORD cbSize; 
//    HWND hWnd; 
//    UINT uID; 
//    UINT uFlags; 
//    UINT uCallbackMessage; 
//    HICON hIcon; 
//    char szTip[64]; 
//} NOTIFYICONDATA, *PNOTIFYICONDATA; 

	NOTIFYICONDATA m_NotifyIconData;//托盘数据结构

	UINT m_uMenuIDResource;//菜单资源
	int m_nSubMenu;//子菜单项
	HMENU m_hMenu;//托盘默认弹出的菜单
	HWND m_hMenuWnd;//默认菜单关联的窗口
	CArray<MENUMESSAGE,MENUMESSAGE&> m_arrMenuMessages;//菜单及其激活的消息

	UINT m_uTimerID;//定时器ID;
	UINT m_uInterval;//定时器时间间隔
	CImageList* m_pIconList;//按顺序显示的图标(动画图标序列)
// Construction
public:
	CSystemTray();
	CSystemTray( CWnd* pOwner, UINT uCallbackMessage, HICON hIcon, UINT uID, char* pszTips = NULL );
	virtual ~CSystemTray();
public:
	void AddIcon();//将托盘图标加入到系统托盘区
	void RemoveIcon();//将托盘图标移出系统托盘区
	void ModifyIcon();//用新设置的值更新托盘

	void SetOwnerWnd( HWND hWnd );//设置处理托盘消息的窗口句柄
	HWND GetOwnerWnd()const;//读取处理托盘消息的窗口句柄

	void SetTips( char* pszTips );//设置提示字符串,有效长度为64字节
	CString GetTips()const;//读取提示字符串

	void SetTrayIcon( HICON hIcon );//设置托盘图标
	HICON GetTrayIcon()const;//读取托盘图标

	void SetCallbackMessage( UINT uCallbackMessage );//设置托盘向拥有托盘的窗口发送的消息(自定义的消息)
	UINT GetCallbackMessage()const;//返回托盘向拥有托盘的窗口发送的消息

	void SetDefaultMenu( UINT nIDResource, int nSubMenu = 0 );//根据资源创建菜单
	void SetSubMenu( int nSubMenu );//资源子菜单
	void SetDefaultMenu( HMENU hMenu );//设置默认菜单
	HMENU GetDefaultMenu()const;//读取默认菜单

	void SetMenuWnd( HWND hWnd );//设置处理默认菜单消息的窗口(默认菜单关联的窗口)
	HWND GetMenuWnd()const;//读取处理默认菜单消息的窗口(默认菜单关联的窗口)

	void AddMenuMessage( WORD message, UINT uMenuID = 0, int nSubMenu = 0, HMENU hMenu = 0, HWND hMenuWnd = 0 );//添加激活默认菜单的消息
	void RemoveMenuMessage( WORD message );//移出激活默认菜单的消息
	MENUMESSAGE* GetMenuMessage( WORD message );//检测激活默认菜单的消息

	void SetInterval( UINT uInterval);//设置定时器时间间隔
	UINT GetInterval()const;//读取定时器时间间隔
	BOOL PlayAnimation();//开始动画显示图标
	BOOL StopAnimation();//停止动画显示图标
	BOOL CreateIconList( CImageList* pIconList );//创建动画显示的图标序列

public:
	//新添加的虚函数,创建窗口处理托盘消息
	virtual BOOL CreateTray( CWnd* pOwner, UINT uCallbackMessage, HICON hIcon, UINT uID, char* pszTips = NULL );

protected:
	//新添加的虚函数,处理指定的通知消息
	virtual LRESULT OnTrayNotification( WPARAM uID, LPARAM lEvent );

// Operations
public:
// Overrides
	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CSystemTray)
	protected:
		virtual LRESULT WindowProc(UINT message,WPARAM wParam,LPARAM lParam);
	//}}AFX_VIRTUAL

// Implementation
protected:
	// Generated message map functions
	//{{AFX_MSG(CSystemTray)
		// NOTE - the ClassWizard will add and remove member functions here.
	afx_msg void OnTimer(UINT nIDEvent);
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()
};

/////////////////////////////////////////////////////////////////////////////

//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_SYSTEMTRAY_H__086B0CB1_89CD_11D2_9E52_52544C303E22__INCLUDED_)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -