托盘区图标操作
来源:互联网 发布:matlab矩阵行交换 编辑:程序博客网 时间:2024/05/02 05:00
经常能够看到软件运行后在托盘产生图标 ,其实也就是对结构 NOTIFYICONDATA 的设置
再调用Shell_NotifyIcon就能完成
NOTIFYICONDATA notifycd;
notifycd.cbSize=sizeof(NOTIFYICONDATA);
notifycd.hIcon=AfxGetApp()->LoadIcon(IDR_MAINFRAME);//图标资源
notifycd.hWnd=m_hWnd;
notifycd.uID=IDR_MAINFRAME;
notifycd.uFlags=NIF_MESSAGE|NIF_ICON|NIF_TIP;
lstrcpy( notifycd.szTip, _T( "" ) ); //默认的tooltip上的文字
notifycd.uCallbackMessage = WM_SHELLNOTIFY; //一旦在任务栏上产生图标,就回触发一定的消息
Shell_NotifyIcon(NIM_ADD,¬ifycd);
任务栏图标上的消息处理映射
ON_MESSAGE( WM_SHELLNOTIFY, OnShellNotify)
显示,删除,修改函数详细操作
//在托盘区显示图标
BOOL AddNotifyIcon(UINT Icon,LPCTSTR sztip, UINT ID)
{
HICON hIcon;
hIcon=AfxGetApp()->LoadIcon(Icon);
NOTIFYICONDATA idata;
idata.cbSize=sizeof(NOTIFYICONDATA);
idata.hIcon=hIcon;
CWnd *pWnd=AfxGetMainWnd();
idata.hWnd=GetSafeHwnd();
strcpy(idata.szTip,sztip);
idata.uCallbackMessage=WM_SHELLNOTIFY;
idata.uFlags=NIF_MESSAGE|NIF_ICON|NIF_TIP;
idata.uID=ID;
return Shell_NotifyIcon(NIM_ADD,&idata);
}
//在托盘区删除图标
BOOL DeleteNotifyIcon(UINT Icon,LPCTSTR sztip, UINT ID)
{
HICON hIcon;
hIcon=AfxGetApp()->LoadIcon(Icon);
NOTIFYICONDATA idata;
idata.cbSize=sizeof(NOTIFYICONDATA);
idata.hIcon=hIcon;
CWnd *pWnd=AfxGetMainWnd();
idata.hWnd=GetSafeHwnd();
strcpy(idata.szTip,sztip);
idata.uCallbackMessage=WM_SHELLNOTIFY;
idata.uFlags=NIF_MESSAGE|NIF_ICON|NIF_TIP;
idata.uID=ID;
return Shell_NotifyIcon(NIM_DELETE,&idata);
}
//在托盘区修改图标
BOOL ModifyNotifyIcon(UINT Icon,LPCTSTR sztip, UINT ID)
{
HICON hIcon;
hIcon=AfxGetApp()->LoadIcon(Icon);
NOTIFYICONDATA idata;
idata.cbSize=sizeof(NOTIFYICONDATA);
idata.hIcon=hIcon;
CWnd *pWnd=AfxGetMainWnd();
idata.hWnd=GetSafeHwnd();
strcpy(idata.szTip,sztip);
idata.uCallbackMessage=WM_SHELLNOTIFY;
idata.uFlags=NIF_MESSAGE|NIF_ICON|NIF_TIP;
idata.uID=ID;
return Shell_NotifyIcon(NIM_MODIFY,&idata);
}
再调用Shell_NotifyIcon就能完成
NOTIFYICONDATA notifycd;
notifycd.cbSize=sizeof(NOTIFYICONDATA);
notifycd.hIcon=AfxGetApp()->LoadIcon(IDR_MAINFRAME);//图标资源
notifycd.hWnd=m_hWnd;
notifycd.uID=IDR_MAINFRAME;
notifycd.uFlags=NIF_MESSAGE|NIF_ICON|NIF_TIP;
lstrcpy( notifycd.szTip, _T( "" ) ); //默认的tooltip上的文字
notifycd.uCallbackMessage = WM_SHELLNOTIFY; //一旦在任务栏上产生图标,就回触发一定的消息
Shell_NotifyIcon(NIM_ADD,¬ifycd);
任务栏图标上的消息处理映射
ON_MESSAGE( WM_SHELLNOTIFY, OnShellNotify)
显示,删除,修改函数详细操作
//在托盘区显示图标
BOOL AddNotifyIcon(UINT Icon,LPCTSTR sztip, UINT ID)
{
HICON hIcon;
hIcon=AfxGetApp()->LoadIcon(Icon);
NOTIFYICONDATA idata;
idata.cbSize=sizeof(NOTIFYICONDATA);
idata.hIcon=hIcon;
CWnd *pWnd=AfxGetMainWnd();
idata.hWnd=GetSafeHwnd();
strcpy(idata.szTip,sztip);
idata.uCallbackMessage=WM_SHELLNOTIFY;
idata.uFlags=NIF_MESSAGE|NIF_ICON|NIF_TIP;
idata.uID=ID;
return Shell_NotifyIcon(NIM_ADD,&idata);
}
//在托盘区删除图标
BOOL DeleteNotifyIcon(UINT Icon,LPCTSTR sztip, UINT ID)
{
HICON hIcon;
hIcon=AfxGetApp()->LoadIcon(Icon);
NOTIFYICONDATA idata;
idata.cbSize=sizeof(NOTIFYICONDATA);
idata.hIcon=hIcon;
CWnd *pWnd=AfxGetMainWnd();
idata.hWnd=GetSafeHwnd();
strcpy(idata.szTip,sztip);
idata.uCallbackMessage=WM_SHELLNOTIFY;
idata.uFlags=NIF_MESSAGE|NIF_ICON|NIF_TIP;
idata.uID=ID;
return Shell_NotifyIcon(NIM_DELETE,&idata);
}
//在托盘区修改图标
BOOL ModifyNotifyIcon(UINT Icon,LPCTSTR sztip, UINT ID)
{
HICON hIcon;
hIcon=AfxGetApp()->LoadIcon(Icon);
NOTIFYICONDATA idata;
idata.cbSize=sizeof(NOTIFYICONDATA);
idata.hIcon=hIcon;
CWnd *pWnd=AfxGetMainWnd();
idata.hWnd=GetSafeHwnd();
strcpy(idata.szTip,sztip);
idata.uCallbackMessage=WM_SHELLNOTIFY;
idata.uFlags=NIF_MESSAGE|NIF_ICON|NIF_TIP;
idata.uID=ID;
return Shell_NotifyIcon(NIM_MODIFY,&idata);
}
- 托盘区图标操作
- 托盘区图标操作
- 托盘区图标操作(NOTIFYICONDATA)
- Qt任务栏,托盘栏,托盘菜单,图标等操作
- 托盘区图标编程方法
- 托盘区图标编程方法
- 托盘图标
- 托盘图标
- 托盘图标
- 托盘图标
- 托盘图标
- VC小技巧(2)-----托盘区图标操作
- 删除Windows托盘区的无效图标
- 关于调用Shell_NotifyIcon操作托盘图标失败的说明
- AIR 托盘处理,托盘图标,文件托盘
- 修改 QQ 任务栏托盘区小图标和等级图标
- 托盘操作
- 托盘图标提示
- Asp.Net Forums中对.Net中序列化和反序列化的应用
- 关于Linux系统内核源代码分析经验谈
- application/session/cookie/viewstat/cache比较说明
- 大阪第51天——纯属娱乐
- eclipse的java编译器命令行
- 托盘区图标操作
- 如何编译一个内核 - Ubuntu方式
- 软件实施成功第一步--抑制需求
- UNIX/LINUX 平台可执行文件格式分析
- Linux和Win双系统重新安装Win而不影响双引导的办法
- 在Vista下使用vs2005不能调试asp.net的问题
- Win CE 下对GPs 的获取和嵌入式开发需要注意的问题
- Linux 调度器内幕
- C/C++ 程序设计员应聘常见面试试题深入剖析1