【高难度问题,新手请旁观】托盘图标上右键菜单显示,随机伴随系统菜单出现

gobest28 2013-07-02 11:27:04
功能:使用VC实现了一个托盘图标,右键点击托盘图标时,显示自定义菜单。

问题描述:在右击托盘图标时,随机出现系统菜单与自定义菜单并列显示,平均 每右击5~10次,就出现一次。

系统环境:X86 Windows XP SP2 简体中文版。VS2008开发环境。
系统菜单:右击托盘区域空白处显示出来的右键菜单。样式如下:

工具栏(T)
----------------
调试日期/时间(A)
自定义通知(C)...
----------------
层叠窗口(S)
横向平铺窗口(H)
纵向平铺窗口(E)
显示桌面(S)
----------------
任务管理器(K)
----------------
锁定任务栏(L)
----------------
属性(R)
----------------

右键菜单处理代码:
// 处理自定义消息
LRESULT CXxxDlg::OnRecvMyMsg(WPARAM wParam, LPARAM lParam)
{
LRESULT lRes = -1;
if ( wParam != WM_MY_NOTIFY_MSG )
{
return 1;
}

// ... 显示右键菜单 ...
lRes = ShowTrayMenu(wParam, lParam);

return lRes; // lRes = 0;
}
...全文
57 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
向立天 2013-08-02
  • 打赏
  • 举报
回复
您好 我是本版版主 此帖已多日无人关注 请您及时结帖 如您认为问题没有解决可按无满意结帖处理 另外本版设置了疑难问题汇总帖 并已在版面置顶 相关规定其帖子中有说明 您可以根据规定提交您帖子的链接 如您目前不想结帖只需回帖说明 我们会删除此结帖通知 见此回复三日内无回应 我们将强制结帖 相关规定详见界面界面版关于版主结帖工作的具体办法
shen_wei 2013-07-02
  • 打赏
  • 举报
回复
if (message == WM_USER_TRAY_NOTIFICATION)
	{
		UINT uMouseMsg = (UINT) lParam;
		if (uMouseMsg == WM_RBUTTONDOWN)
		{
			POINT pos;
			CMenu Menu;
			Menu.LoadMenu(IDR_MENU1);
			CMenu *pMenu = Menu.GetSubMenu(0);
			CWnd *pMain = AfxGetMainWnd();
			GetCursorPos(&pos);
			pMain->SetForegroundWindow();
			::TrackPopupMenu(pMenu->m_hMenu,0,pos.x,pos.y,0,pMain->GetSafeHwnd(),NULL);
		}
	}
	return CDialog::WindowProc(message, wParam, lParam);
本人的例子::

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧