首先
新建一个muen菜单 id 为 IDR_MUEN2
添加两个 子选项 一个 是显示 一个 是退出 还可以自己设定
然后给两个子选项添加事件处理 注意选择要给哪一个Dlg添加事件
要注意选择
void CBBSDlg::OnMenuShow()
{
ShowWindow(SW_RESTORE);
TrayMyIcon(FALSE);
// TODO: 在此添加命令处理程序代码
}
和
void CBBSDlg::OnMenuExit()
{
// TODO: 在此添加命令处理程序代码
TrayMyIcon(FALSE);
CBBSDlg::OnCancel();
}
然后再类向导选择消息 添加自定义消息
我的消息设置为WM_TRAYICON_MSG 的
处理消息名称为 OnTrayiconMsg
然后加上
#define WM_TRAYICON_MSG (WM_USER+100)//自定义消息
afx_msg LRESULT CBBSDlg::OnTrayiconMsg(WPARAM wParam, LPARAM lParam)
{
switch(lParam)
{
case WM_RBUTTONUP:
{
CMenu mMenu, *pMenu = NULL;
CPoint pt;
mMenu.LoadMenu(IDR_MENU2);
pMenu = mMenu.GetSubMenu(0);
GetCursorPos(&pt);
SetForegroundWindow();
pMenu->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON, pt.x, pt.y, this);
break;
}
case WM_LBUTTONDBLCLK:
ShowWindow(SW_RESTORE);
SetForegroundWindow();
break;
default:break;
}
return NULL;
}
添加托盘实现代码
bool CBBSDlg::TrayMyIcon(bool b
实现托盘
最新推荐文章于 2020-12-24 05:00:05 发布
这篇博客介绍了如何在VC++中实现任务栏托盘功能,包括创建菜单、添加自定义消息处理、封装托盘函数以及响应消息。通过示例代码详细展示了如何使用NOTIFYICONDATA结构和Shell_NotifyIcon函数来添加和删除托盘图标。
摘要由CSDN通过智能技术生成