博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
VC 创建托盘,托盘tooltip。右键托盘菜单,点击别的地方会隐藏掉的问题。
阅读量:5899 次
发布时间:2019-06-19

本文共 1734 字,大约阅读时间需要 5 分钟。

托盘上的菜单右键弹出后,然后再别的地方,比如桌面,菜单无法隐藏掉,一直在托盘上,除非操作下菜单才能隐藏掉,只需要加上一句话

::SetForegroundWindow(m_nid.hWnd);

就可以解决这个问题。

下面是托盘创建

class CXXXDlg{private:NOTIFYICONDATA     m_trayid;        //作为托盘ID};

//创建托盘void CXXXDlg::CreateTray(HICON icon){	m_trayid.cbSize = (DWORD)sizeof(NOTIFYICONDATA);	m_trayid.hWnd = this->m_hWnd;	m_trayid.uID = 128;	m_trayid.uFlags = NIF_ICON|NIF_MESSAGE|NIF_TIP;	m_trayid.uCallbackMessage = UM_SHOW_THIRDBIND;	m_trayid.hIcon = icon;	wcscpy_s(m_trayid.szTip, _T("我是托盘"));	Shell_NotifyIcon(NIM_ADD, &m_trayid);}
//显示托盘tooltipvoid CXXXDlg::ShowTrayTooltip(){    m_trayid.cbSize=sizeof(NOTIFYICONDATA);    m_trayid.uFlags = NIF_INFO;    m_trayid.uVersion = NOTIFYICON_VERSION;    m_trayid.uTimeout = 5000;    m_trayid.dwInfoFlags = NIIF_INFO;    wcscpy_s(m_trayid.szInfoTitle, L"提示" );                  //气泡标题    wcscpy_s(m_trayid.szInfo, L"我是托盘tooltip");             //气泡内容    Shell_NotifyIcon( NIM_MODIFY, &m_trayid);}

LRESULT   CXXXDlg::onShowTask(WPARAM    wParam,LPARAM    lParam)   //托盘响应消息     {         if(wParam !=128)              return    1;     switch(lParam)           {     case    WM_RBUTTONUP:              {               ::SetForegroundWindow(m_nid.hWnd);                    //点击别的地方,托盘隐藏            LPPOINT    lpoint=new    tagPOINT;                 ::GetCursorPos(lpoint);             m_menu.GetSubMenu(0)->TrackPopupMenu(TPM_LEFTALIGN | TPM_LEFTBUTTON | TPM_RIGHTBUTTON, lpoint->x, lpoint->y, this);             delete   lpoint;            break;        }          case   WM_LBUTTONDBLCLK:           {                 this->ShowWindow(SW_SHOW);            SetForegroundWindow();        }           break;         }     return    0;  }

转载于:https://www.cnblogs.com/yuzhould/archive/2013/04/26/4454263.html

你可能感兴趣的文章
《交互式程序设计 第2版》一2.3.2 数组
查看>>
移动互联网金融app 存在信息安全问题
查看>>
Android 开发中使用 SQLite 数据库
查看>>
Android后门GhostCtrl,完美控制设备任意权限并窃取用户数据
查看>>
IBM郭继军:机器学习配合行业经验将帮助企业成就未来
查看>>
Rambus9000万美元收购Inphi存储器互联业务
查看>>
3GPP一反常态提前制定NB-IoT标准有何深意?
查看>>
泉州电信推进渠道互联网化转型
查看>>
《BackTrack 5 Cookbook中文版——渗透测试实用技巧荟萃》—第3章3.6节识别操作系统...
查看>>
提供给开发者的 20 款最棒的 jQuery Bootstrap 插件 【已翻译100%】
查看>>
linux系统防火墙iptables命令规则及配置的示例
查看>>
10 个顶尖的 Linux 开源人工智能工具
查看>>
传 Android N 或取消沿用多年的应用抽屉
查看>>
Firefox 跟踪保护技术将页面加载时间减少 44%
查看>>
聚合(根)、实体、值对象精炼思考总结
查看>>
Hibernate从入门到放弃(三)----持久化对象
查看>>
Aop RealProxy 千年遇BUG
查看>>
java解析虾米音乐
查看>>
rails将类常量重构到数据库对应的表中之三
查看>>
error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
查看>>