1、在.h文件中声明相关变量
4、添加消息关联代码
5、程序退出,销毁图标
NOTIFYICONDATA nid; //托盘图标数据
2、在stdafx.h中 声明自定义消息
enum
{
UM_ICONNOTIFY = WM_USER+0x100 //托盘菜单自定义消息
};
void CMFCApplication3Dlg::OnIconNotify(WPARAM wParam, LPARAM lParam)
{
switch (UINT(lParam))
{
case WM_LBUTTONDOWN: //左键按下(显示隐藏窗口)
case WM_LBUTTONDBLCLK: //左键双击
if (!IsWindowVisible())
ShowWindow(SW_SHOW);
else
ShowWindow(SW_HIDE);
break;
case WM_RBUTTONDOWN: //右键摁下(弹出菜单)
CMenu menu;
menu.LoadMenuW(IDR_MENU_NOTIFY); //IDR_MENU_NOTIFY 菜单ID
CPoint point;
GetCursorPos(&point);
SetForegroundWindow();
menu.GetSubMenu(0)->TrackPopupMenu(
TPM_LEFTBUTTON|TPM_RIGHTBUTTON,
point.x, point.y, this, NULL);
PostMessage(WM_USER, 0, 0);
break;
}
}
4、添加消息关联代码
ON_MESSAGE(UM_ICONNOTIFY,(LRESULT(__thiscall CWnd::*)(WPARAM,LPARAM))OnIconNotify)
5、程序退出,销毁图标
在OnClose()消息中添加如下代码:
Shell_NotifyIcon(NIM_DELETE, &nid); //销毁图标