首页 > 编程语言 >MFC程序隐藏托盘+右键关闭菜单

MFC程序隐藏托盘+右键关闭菜单

时间:2023-05-17 13:45:37浏览次数:52  
标签:MFC 自定义 lpoint menu WM nid 托盘 菜单 右键

背景介绍:   我的程序是启动后,默认就隐藏到托盘中,等待http请求后,显示界面。所以最小化到托盘的代码,我是写在初始化里面。     正文:

一、自定义消息 WM_SHOWTASK

#define WM_SHOWTASK        (WM_USER + 101)

 

 

二、在类向导中添加消息处理

  点击【类向导】、【消息】、【自定义消息】,填写自定义的消息【WM_SHOWTASK】,点击【确定】,双击,自动生成类函数,编写代码。

 

 

三、最小化到托盘

// 编写最小化到托盘的代码,我是写在初始化函数中
NOTIFYICONDATA nid;
nid.cbSize = (DWORD)sizeof(NOTIFYICONDATA);
nid.hWnd = this->m_hWnd;  
nid.uID = IDI_MAINFRAME;                                // 资源,icon 图片
nid.uFlags = NIF_ICON | NIF_MESSAGE | NIF_TIP;
nid.uCallbackMessage = WM_SHOWTASK;                        // 绑定自定义的消息
nid.hIcon = m_hIcon;
lstrcpy(nid.szTip, _T("web server"));
Shell_NotifyIcon(NIM_ADD, &nid);

 

四、处理自定义消息,给托盘程序绑定右键菜单

afx_msg LRESULT CeloamDllDemoDlg::OnShowtask(WPARAM wParam, LPARAM lParam)
{
    switch (lParam)
    {
        case WM_RBUTTONUP:    // 只处理鼠标右键点击
        {
            LPPOINT lpoint = new tagPOINT;
            ::GetCursorPos(lpoint);
            CMenu menu;
            menu.CreatePopupMenu();
            menu.AppendMenuW(MF_STRING, WM_DESTROY, L"关闭");
            menu.TrackPopupMenu(TPM_LEFTALIGN, lpoint->x, lpoint->y, this);
            HMENU hmenu = menu.Detach();
            menu.DestroyMenu();
            delete lpoint;
        }break;
    }

    return 0;
}

 

标签:MFC,自定义,lpoint,menu,WM,nid,托盘,菜单,右键
From: https://www.cnblogs.com/shiyixirui/p/17408503.html

相关文章

  • Element UI el-menu菜单 子级选中后,删除父级下划线
    1.子级选中,父级也选中样式修改: .el-submenu.is-active>.el-submenu__title {color:#FFFFFF;background-color:#7E8796!important;}2.子级选中后,父级有下划线,可以通过以下样式修改去除下划线 .el-menu--horizontal>.el-submenu.el-submenu__title ......
  • STM32fcu,燃料电池控制器,质子交换膜燃料电池系统模型(PEMFC),基于MATLAB/simulink开发,主要
    STM32fcu,燃料电池控制器,质子交换膜燃料电池系统模型(PEMFC),基于MATLAB/simulink开发,主要部分有空压机模型,供气系统模型(阴极和阳极),背压阀模型,电堆模型等。可进行控制策略等仿真开发工作。ID:4745692172825523......
  • 在input中如何禁止复制、粘贴、鼠标右键弹出面板选项
    主要事件右键弹出面板选项oncontextmenu复制oncopy粘贴onpaste原生input实现-禁止复制<inputoncopy="returnfalse"/>-禁止粘贴<inputonpaste="returnfalse"/>-禁止鼠标右键弹出面板选项<inputoncontextmenu="returnfalse"/>Rea......
  • Windows 11 恢复经典的右键全量菜单
    设置打开windows命令行终端输入并回车(下列代码为同一行):regaddHKCU\Software\Classes\CLSID\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}\InprocServer32/ve/d""/f退出命令行终端退出并重新登录账号或重启资源管理器或重启电脑恢复默认打开windows命令行终端输入并回......
  • ABP Suite模块项目中设置菜单及其多语言
    1、Blazor的菜单构造的类ABPSuite自动生成的是这样:2、从Study.Trade.Web的Menus下拷贝内容过来后3、TradeMenus中增加一个常量4、启动程序单击Trade后,能看到子菜单单击“CustomerOrders”,页面正确导航了:5、翻译菜单项语言的资源文件,都在Domain.Shared项目的Localization的子文件......
  • 下拉菜单的实现
    下拉菜单​ ul内放着若干li;li内分上下两块;上面是a;下面是ul;ul内有多个li,给li添加监听事件,鼠标移入到a内时,ul显示;鼠标再移入ul内时,ul继续显示​ 结构<body><ulclass="nav"><li><ahref="#">微博</a><......
  • fcu,燃料电池控制器,质子交换膜燃料电池系统模型(PEMFC),基于MATLAB/simulink开发,主要部分
    fcu,燃料电池控制器,质子交换膜燃料电池系统模型(PEMFC),基于MATLAB/simulink开发,主要部分有空压机模型,供气系统模型(阴极和阳极),背压阀模型,电堆模型等。可进行控制策略等仿真开发工作。提供相关文档学习建模资料等ID:2750685458971559......
  • Firefox 112 发布:右键单击显示密码、改进标签管理等!
    Firefox发布112版本,为我们带来了显示密码的新选择、同时改进了标签管理等。Mozilla于2023年4月11日发布了Firefox112,新版本包含一些令人兴奋的新功能和改进。该浏览器的最新版本带来了一些功能以增强用户体验和提高性能。在Ubuntu上运行Firefox112本次......
  • Firefox 112 发布:右键单击显示密码、改进标签管理等!
    Firefox发布112版本,为我们带来了显示密码的新选择、同时改进了标签管理等。Mozilla于2023年4月11日发布了Firefox112,新版本包含一些令人兴奋的新功能和改进。该浏览器的最新版本带来了一些功能以增强用户体验和提高性能。在Ubuntu上运行Firefox112本次......
  • Firefox 112 发布:右键单击显示密码、改进标签管理等!
    Firefox发布112版本,为我们带来了显示密码的新选择、同时改进了标签管理等。Mozilla于2023年4月11日发布了Firefox112,新版本包含一些令人兴奋的新功能和改进。该浏览器的最新版本带来了一些功能以增强用户体验和提高性能。在Ubuntu上运行Firefox112本次......