1.定义消息名称
#define WM_OnShowTask WM_USER+100
消息
ON_MESSAGE(WM_OnShowTask,OnShowTask)
2.实现最小化托盘图标方法
//---------------托盘程序----------------------
void CMP3PlayerDlg::OnTray()
{
nid.cbSize=(DWORD)sizeof(NOTIFYICONDATA);
nid.hWnd=this->m_hWnd;
nid.uID=IDR_MAINFRAME;
nid.uFlags=NIF_ICON|NIF_MESSAGE|NIF_TIP ;
nid.uCallbackMessage=WM_OnShowTask;//自定义的消息名称
nid.hIcon=LoadIcon(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDR_MAINFRAME));
strcpy(nid.szTip,"音乐播放器");//信息提示条为“音乐播放器”
Shell_NotifyIcon(NIM_ADD,&nid);//在托盘区添加图标
ShowWindow(SW_HIDE);//隐藏主窗口
}
3.最小化的时候实现托盘图标
void CMP3PlayerDlg::OnSysCommand(UINT nID, LPARAM lParam)
{
if (nID==SC_MINIMIZE)//重载最小化按钮,点击最小化按钮到托盘
{
//托盘程序
OnTray();
}
else if (nID==SC_CLOSE)
{
OnOK();
}
else
{
CDialog::OnSysCommand(nID, lParam);
}
}
4.退出播放器的时候 销毁图标
//-------------------窗体销毁消息响应函数-------------------
void CMP3PlayerDlg::OnDestroy()
{
CDialog::OnDestroy();
//删除托盘图标
Shell_NotifyIcon(NIM_DELETE, &nid);
}