系统托盘的创建: void CPmlxDlg::CreateTray(int state) { char lpszTip[256]; strcpy(lpszTip,"屏幕录像"); NOTIFYICONDATA data; //用来向任务栏托盘区域发送消息 data.cbSize=sizeof(NOTIFYICONDATA); //结构体的大小,以字节为单位。 data.hWnd=m_hWnd; //窗口的句柄。 lstrcpyn(data.szTip,lpszTip,sizeof(lpszTip)); //该函数把第二个参数指定的字符串复制到第一个参数指定的字符串,第三个参数指定复制的长度。 data.uCallbackMessage=WM_ONTRAY; //应用程序定义的消息标示。 data.uFlags=NIF_MESSAGE|NIF_ICON|NIF_TIP; //此成员表明具体哪些其他成员为合法数据(即哪些成员起作用) data.uID=IDR_MAINFRAME; //应用程序定义的任务栏图标的标识符。 if(state==1) { if(m_Once) { data.hIcon = m_Icon1; Shell_NotifyIcon(NIM_ADD,&data);//NIM_ADD:向托盘区域添加一个图标.NIM_DELETE :删除托盘区域的一个图标。NIM_MODIFY :修改托盘区域的一个图标 //NIM_SETFOCUS :Version 5.0.设置焦点.NIM_SETVERSION :Version 5.0. 设置任务栏按照第二个参数指向的NOTIFYICONDATA结构体中的uVersion成员指定的版本号来工作。 m_Once = FALSE; } else { data.hIcon = m_Icon1; Shell_NotifyIcon(NIM_MODIFY,&data); } } else if(state == 2) { data.hIcon = m_Icon2; Shell_NotifyIcon(NIM_MODIFY,&data); } else if(state == 3) { data.hIcon = m_Icon3; Shell_NotifyIcon(NIM_MODIFY,&data);//NIM_ADD:向托盘区域添加一个图标.NIM_DELETE :删除托盘区域的一个图标。NIM_MODIFY :修改托盘区域的一个图标 //NIM_SETFOCUS :Version 5.0.设置焦点.NIM_SETVERSION :Version 5.0. 设置任务栏按照第二个参数指向的NOTIFYICONDATA结构体中的uVersion成员指定的版本号来工作。 } } 系统托盘双击: void CPmlxDlg::OnTray(WPARAM wParam, LPARAM lParam) { if(lParam == WM_LBUTTONDBLCLK) //双击鼠标 { ShowWindow(SW_RESTORE); //恢复窗口的显示 } } 系统托盘的删除: NOTIFYICONDATA data; data.cbSize=sizeof(NOTIFYICONDATA); data.hWnd=m_hWnd; data.uID=IDR_MAINFRAME; data.hIcon = m_Icon1; Shell_NotifyIcon(NIM_DELETE,&data);