实现托盘

这篇博客介绍了如何在VC++中实现任务栏托盘功能,包括创建菜单、添加自定义消息处理、封装托盘函数以及响应消息。通过示例代码详细展示了如何使用NOTIFYICONDATA结构和Shell_NotifyIcon函数来添加和删除托盘图标。
摘要由CSDN通过智能技术生成

首先 
新建一个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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值