64,654
社区成员
发帖
与我相关
我的任务
分享
int showTray(int icoID,HWND hWnd, UINT uCallMsg,int op,int id=0);
int showTray(int icoID,HWND hWnd, UINT uCallMsg,int op,int id){
// iconID:窗体的第几个托盘图标, hWnd: 主窗体句柄, uCallMsg:托盘事件映射的消息, id 取路径icons下第几个图标 , op 操作编号1添加2更改0删除
WCHAR icoPath[64]={0};
wsprintf(icoPath,L"icons\\%u_%u.ico",icoID,id);
NOTIFYICONDATA IconData[1];
IconData[id].cbSize=sizeof(NOTIFYICONDATA);
//IconData[id].uVersion=NOTIFYICON_VERSION; // the NOTIFYICONDATA is for Win2000 and later.
IconData[id].hIcon=(HICON)LoadImage(NULL,icoPath,IMAGE_ICON,0,0,LR_LOADFROMFILE | LR_DEFAULTCOLOR | LR_DEFAULTSIZE);
wsprintf(IconData[id].szTip,L"SZRProjSvc");
//strcpy(IconData[id].szTip,L"SZRProjSvc");
IconData[id].uFlags= NIF_ICON | NIF_MESSAGE; //| NIF_INFO ;
IconData[id].uCallbackMessage=uCallMsg;
IconData[id].hWnd=hWnd;
IconData[id].uID=icoID;
switch(op){
case 1:
Shell_NotifyIcon(NIM_ADD,&IconData[id]) ;
break;
case 2:
Shell_NotifyIcon(NIM_MODIFY,&IconData[id]) ;
break;
case 0:
Shell_NotifyIcon(NIM_DELETE,&IconData[id]) ;
break;
}
LocalFree(IconData);
LocalFree(icoPath);
return 0;
}
showTray(101,hWnd,WM_TRAYICONMSG,1); //新增托盘图标
showTray(101,hWnd,WM_TRAYICONMSG,2,1); // 更改托盘101号托盘的图标为1号图标(默认0号)
showTray(101,hWnd,WM_TRAYICONMSG,0); //删除托盘图标