.h 文件中定义自定义消息
#define WM_NOTIFYICON WM_USER+5
OnInitDialog()
{
// 添加系统托盘图标
//NOTIFYICONDATA m_nIcon;
m_nIcon.cbSize=sizeof(NOTIFYICONDATA);
m_nIcon.hIcon=m_hIcon;
m_nIcon.hWnd=m_hWnd;
m_nIcon.uID=IDI_ICON1;
m_nIcon.uFlags=NIF_ICON | NIF_MESSAGE | NIF_TIP;
m_nIcon.uCallbackMessage=WM_NOTIFYICON;
strcpy(m_nIcon.szTip,"拨号日志导入程序");
Shell_NotifyIcon(NIM_ADD,&m_nIcon);
}
OnDestroy()
{
// 将托盘图标删除
m_nIcon.cbSize=sizeof(NOTIFYICONDATA);
m_nIcon.hIcon=m_hIcon;
m_nIcon.hWnd=m_hWnd;
m_nIcon.uCallbackMessage=WM_NOTIFYICON;
m_nIcon.uFlags=NIF_ICON | NIF_MESSAGE | NIF_TIP;
m_nIcon.uID=IDI_ICON1;
Shell_NotifyIcon(NIM_DELETE,&m_nIcon);
}
自定义函数:
OnNotifyIcon(WPARAM wParam, LPARAM lParam)
{
if((wParam == IDI_ICON1) && (lParam == WM_LBUTTONDBLCLK))
//if(lParam == WM_LBUTTONDBLCLK)
{
ShowWindow(SW_SHOWNORMAL);
//AfxGetApp()->m_pMainWnd->ShowWindow(SW_SHOW);
}
else if ((wParam == IDI_ICON1) && ((lParam == WM_LBUTTONDOWN) || (lParam == WM_RBUTTONDOWN)))
{
CMenu menu;
menu.LoadMenu(IDR_MENU1);
CMenu* pMenu=menu.GetSubMenu(0);
CPoint pos;
GetCursorPos(&pos);
pMenu->TrackPopupMenu(TPM_LEFTALIGN|TPM_RIGHTBUTTON,pos.x,pos.y,AfxGetMainWnd());
}
}