标签:
typedef struct _NOTIFYICONDATA {
DWORD cbSize;
HWND hWnd;
UINT uID;
UINT uFlags;
UINT uCallbackMessage;
HICON hIcon;
TCHAR szTip[64];
DWORD dwState;
DWORD dwStateMask;
TCHAR szInfo[256];
union {
UINT uTimeout;
UINT uVersion;
};
TCHAR szInfoTitle[64];
DWORD dwInfoFlags;
GUID guidItem;
} NOTIFYICONDATA, *PNOTIFYICONDATA;
cbSize 以字节计的结构大小,以适应不同版本。
hWnd 接收Windows消息的窗口句柄。
uID 托盘图标的ID。
uFlags 指示结构中的哪些成员包含有效数据,可选值:NIF_ICON, NIF_MESSAGE,NIF_TIP,NIF_STATE,NIF_INFO,NIF_GUID。
uCallbackMessage 回调消息ID,由用户自定义。与一个自定义的消息处理函数关联。
hIcon 托盘图标的句柄。
szTip 托盘图标的提示字符串。
注意:以下数据成员仅限系统外壳与常用控制DLL 5.0及以上版本才有效!
dwState 图标的状态:NIS_HIDDEN-隐藏,或NIS_SHAREDICON-可视。
dwStateMask 图标状态掩码,用以设置dwState
szInfo 气球型提示(Balloon ToolTip)的字符串。
uTimeout 以毫秒计的提示显示时间
uVersion 确定所依赖的版本。0-Win95,NOTIFYICON_VERSION-Win2000
szInfoTitle 气球型提示的标题
dwInfoFlags 设置气球型提示所用的图标(类似MessageBox中所使用的图标):
NIIF_ERROR 错误
NIIF_INFO 信息
NIIF_NONE 没有图标
NIIF_WARNING 警告
NIIF_ICON_MASK 6.0版本保留
NIIF_NOSOUND 限6.0版本,不播放对应的声音
guidItem 6.0版本保留
用来做任务栏右边的小图标
// 结构长度
m_NotifyIconData.cbSize = sizeof(NOTIFYICONDATA);
// 窗口,消息将发给该窗口
m_NotifyIconData.hWnd = this->m_hWnd;
// 表示消息发给该窗口时附带ID,那么你就能够if( id == IDR_MAINFRAME )
// { do your proc }
m_NotifyIconData.uID = IDR_MAINFRAME;
// 指定NOTIFYICONDATA结构中uCallbackMessage、hIcon、szTip有填内容
m_NotifyIconData.uFlags = NIF_MESSAGE | NIF_ICON | NIF_TIP;
// 表示要放入System tray(系统托盘,放输入法图标的那个地方)的图标
m_NotifyIconData.hIcon = LoadIcon(AfxGetInstanceHandle(),
MAKEINTRESOURCE(IDR_MAINFRAME));
// 自定义消息例如#define WM_USER_CLICKME ( WM_USER + 1 )
// 当你鼠标点击等在图标上时,系统会发这个消息给你的窗口,那么你就可
// 以比如弹出一个菜单
m_NotifyIconData.uCallbackMessage = WM_USER_CLICKME;
// 鼠标放到图标上后,要显示什么提示
strcpy(m_NotifyIconData.szTip,"服务进程");
// 安装一个图标到System tray中
Shell_NotifyIcon(NIM_ADD,&m_NotifyIconData);
托盘图标的更新
LRESULT CALLBACK WndProc(HWND hWnd, UINT uMessage, WPARAM wParam,
LPARAM lParam)
{
static UINT s_uTaskbarRestart;
switch(uMessage)
{
case WM_Create:
s_uTaskbarRestart = RegisterWindowMessage(TEXT("TaskbarCreated"));
break;
default:
if(uMessage == s_uTaskbarRestart)
AddTaskbarIcons();
break;
}
return DefWindowProc(hWnd, uMessage, wParam, lParam);
}
标签:
原文地址:http://www.cnblogs.com/mhxy13867806343/p/4058410.html