利用Visual C++实现系统托盘程序(3)

本文介绍如何在Visual C++中实现系统托盘程序,通过CTrayIcon类处理右键点击和双击事件,展示上下文菜单。文章包含CTrayIcon::OnTrayNotification方法的详细实现,用于响应托盘图标的各种通知。
摘要由CSDN通过智能技术生成
导读:
  LRESULT CTrayIcon::OnTrayNotification(WPARAM wID, LPARAM lEvent)
  {
  if (wID!=m_nid.uID    (lEvent!=WM_RBUTTONUP &&lEvent!=WM_LBUTTONDBLCLK))
  return 0;
  CMenu menu;//装载上下文菜单;
  if (!menu.LoadMenu(m_nid.uID))
  return 0;
  CMenu* pSubMenu = menu.GetSubMenu(0);
  if (!pSubMenu)
  return 0;
  if (lEvent==WM_RBUTTONUP) {//设置第一个菜单项为默认菜单项目
  ::SetMenuDefaultItem(pSubMenu->m_hMenu, 0, TRUE);
  //将当前菜单作为上下文菜单;
  CPoint mouse;
  GetCursorPos(&mouse);
  ::SetForegroundWindow(m_nid.hWnd);
  ::TrackPopupMenu(pSubMenu->m_hMenu, 0, mouse.x, mouse.y, 0,m_nid.hWnd, NULL);
  } else // double click: execute first menu item
  ::SendMessage(m_nid.hWnd, WM_COMMAND, pSubMenu->GetMenuItemID(0), 0);
  return 1;
  }
  / MainFrm.h : interface of the CMainFrame class
  #if !defi
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值