系统托盘编程中的关键结构

来源:互联网 发布:投稿源码 编辑:程序博客网 时间:2024/05/16 02:44
在有关系统托盘图标编程中,经常要涉及到一个特殊的结构NOTIFYICONDATA。它封装了托
盘图标接收的消息和属性,定义如下:
typedef struct _NOTIFYICONDATA{
DWORD cbSize; //结构的大小,以字节为单位
HWND hWnd; //接收消息的窗口句柄,这些消息是从托盘图标获得的
UINT uID; //程序定义的图标ID,通过这个ID和hWnd句柄来操纵图标和有关的消息
UINT uFlags; //标志后续的参数中哪些有效,可取以下宏相结合的值:NIF_ICON:成员
hIcon有效。NIF_MESSAGE:成员uCallbackMessage有效。NIF_TIP:成员szTip有效。NIF_
STATE:成员dwState和dwStateMask有效。NIF_INFO:采用气泡提示(BallonToolTip)
UINT uCallbackMessage; //程序定义的消息ID。系统通过它向hWnd标识的窗体发送通知
。通知是转告的消息。接收消息的是托盘中的图标,窗体得到的是托盘图标转告的通知。

HICON hIcon; //将在托盘中添加、修改或删除的图标句柄
#if(_WIN32_IE<0x0500) 
TCHAR szTip[64]; //指向提示语句(ToolTip)的字符指针。当Shell32.dll的版本在5.0
以上时,包含128个字符
#else
TCHAR szTip[128];
#endif
#if(_WIN32_IE>=0x0500) //Shell32.dll的版本在5.0以上
DWORD dwState; //图标的状态,在5.0版以后才有意义,可取:NIS_HIDDEN:图标是隐
藏的。NIS_SHAREDICON:图标是公用的
DWORD dwStateMask; //表示哪个状态是需要保留或修改的。如当dwStateMask取为NIS_
HIDDEN时,表示只处理图标的隐藏状态
TCHAR szInfo[256]; //指向气泡提示(BallonToolTip)的字符串指针,如要去掉气泡提
示,可将uFlags赋为NIF_INFO并把szInfo设为空字符串(””)
Union{
UINT uTimeout; //与uVersion一起使用,表示延时值,以毫秒为单位。当鼠标在图标
上经过uTimeout时间后,显示提示信息
UINT uVersion; //与uTimeout一起使用,表示系统托盘图标的接口是使用WIN95(为0
)还是2000(为NOTIFYICON_VERSION)
}DUMMYUNIONNAME; 
TCHAR szInfoTitle[64]; //指向气泡提示标题的字符串指针
DWORD dwInfoFlags; //气泡提示信息的左边可以添加图标。可取:NIIF_ERROR:表示出
错的图标。NIIF_INFO:消息图标。NIIF_NONE:不要图标。NIIF_WARNING:警告图标。NI
IF_ICON_MASK:在版本6.0以上才有意义,保留。NIIF_NOSOUND:在版本6.0以上才有意义
,给出提示时不发出相关声音
#endif
#if(_WIN32_IE>=0x0600)
GUID guidItem; 在版本6.0以上才有意义,保留
#endif
}NOTIFYICONDATA;
原创粉丝点击