MFC窗口实现最小化到托盘 右键菜单和还原

//.h文件
void toTray();//最小化到托盘
void DeleteTray();//删除托盘图标

afx_msg LRESULT OnShowTask(WPARAM wParam,LPARAM lParam) ;//图标恢复//.cpp文件#define WM_SHOWTASK (WM_USER +1)
#define IDR_SHOW 11
#define IDR_OTHER 12
#define IDR_EXIT 13

BEGIN_MESSAGE_MAP()
...
ON_MESSAGE(WM_SHOWTASK,OnShowTask)//消息映射
END_MESSAGE_MAP()

 

void ScheduleDlg::toTray()//最小化到托盘
{NOTIFYICONDATA nid;  nid.cbSize=(DWORD)sizeof(NOTIFYICONDATA);  nid.hWnd=this->m_hWnd;  nid.uID=IDR_MAINFRAME;  nid.uFlags=NIF_ICON|NIF_MESSAGE|NIF_TIP ;  nid.uCallbackMessage=WM_SHOWTASK;//自定义的消息名称  nid.hIcon=LoadIcon(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDR_MAINFRAME));  strcpy(nid.szTip,"OA");//信息提示条为“OA”  Shell_NotifyIcon(NIM_ADD,&nid);//在托盘区添加图标  ShowWindow(SW_HIDE);//隐藏主窗口 
}LRESULT ScheduleDlg::OnShowTask(WPARAM wParam, LPARAM lParam)
{//wParam接收的是图标的ID,而lParam接收的是鼠标的行为 if(wParam != IDR_MAINFRAME) return 1;switch (lParam){case WM_LBUTTONUP://左键单击显示主界面
        {this->ShowWindow(SW_SHOW);SetForegroundWindow();DeleteTray();}break;case WM_RBUTTONUP://右击弹出菜单
        {LPPOINT lpoint = new tagPOINT;::GetCursorPos(lpoint);//得到鼠标位置
            CMenu menu;menu.CreatePopupMenu();menu.AppendMenu(MFT_STRING, IDR_SHOW, "打开主界面");menu.AppendMenu(MFT_STRING, IDR_OTHER, "其他");menu.AppendMenu(MFT_STRING, IDR_EXIT, "退出");SetForegroundWindow();EnableMenuItem(menu,IDR_OTHER,MF_GRAYED);//"其他"菜单变灰//menu.TrackPopupMenu(TPM_LEFTALIGN, lpoint->x,lpoint->y,this);//显示菜单int xx=TrackPopupMenu(menu,TPM_RETURNCMD,lpoint->x,lpoint->y,NULL,this->m_hWnd,NULL);//显示菜单并获取选项IDif(xx==IDR_SHOW) {this->ShowWindow(SW_SHOW);SetForegroundWindow();DeleteTray();}else if(xx==IDR_OTHER) {MessageBox("你点击了“其他”菜单","提示",MB_OK);}else if(xx==IDR_EXIT) {OnBnClickedCancel();}HMENU hmenu = menu.Detach();menu.DestroyMenu();delete lpoint;}break;case WM_LBUTTONDBLCLK:{//双击不处理}break;}return 0;
}void ScheduleDlg::DeleteTray()//销毁托盘图标
{NOTIFYICONDATA nid;nid.cbSize = (DWORD)sizeof(NOTIFYICONDATA);nid.hWnd = this->m_hWnd;nid.uID = IDR_MAINFRAME;nid.uFlags = NIF_ICON | NIF_MESSAGE | NIF_TIP;nid.uCallbackMessage = WM_SHOWTASK;nid.hIcon = LoadIcon(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDR_MAINFRAME));strcpy(nid.szTip,"OA");Shell_NotifyIcon(NIM_DELETE, &nid);
}

 

转载于:https://www.cnblogs.com/suthui/p/3492962.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/376172.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Owner Useful links

1、AS3天地会论坛 http://bbs.9ria.com/forum.php 2、Cocoa China中文网 http://www.cocoachina.com/ 3、IT江湖 http://www.itjhwd.com/ 4、The Swift Programming Language in github https://github.com/numbbbbb/the-swift-programming-language-in-chinese 5、Xcode 工具 …

导出配置_Lua配置表导出优化

随着游戏的开发,项目的配置表数据越来越多,占用的内存越来越;配置表占用太大就会影响游戏加载速度,游戏流畅度的每一毫秒都是我们的必争之路。[1] {DungeonID10000, Dungeon "王进打高俅", NextDungeonID10100, Battle…

iOS数据存取---iOS-Apple苹果官方文档翻译

本系列所有文章,链接地址:iOS7开发-Apple苹果iPhone开发Xcode官方文档翻译PDF下载地址(2013年12月29日更新版) 本文对应pdf文档下载链接,猛戳—>:数据存取文档.key.zip3.1 MB数据存取文档.pdf1.1 MB 数据存取/*技术博客http://www.cnblogs.com/ChenYilong/ 新浪微博http://w…

企业QQ 增加在线交谈链接

企业QQ的在线交流链接跟普通QQ的在线交流不一样&#xff0c;普通QQ的在线交流&#xff0c;可以在http://shang.qq.com/v3/widget.html生成&#xff1b;企业qq的链接可以按以下步骤添加&#xff1a;第一步&#xff1a;引入企业QQjs脚本&#xff1a;<script charset"utf-…

为什么打不开_发票查重百科导出的发票台账为什么附件打不开?

1在扫描完发票之后&#xff0c;很多人都习惯性的定期将扫描的电子发票台账导出来&#xff0c;目前电子发票查重工具小程序版提供了两种导出方式&#xff1a;通过邮件的方式将指定日期内的发票台账直接发送到指定的邮箱&#xff1b;直接将指定日期内的发票台账下载到手机上进行查…

无法找到脚本文件 C:/Windows/explorer.exe:574323188.vbs

今天打开电脑后电脑有点反常&#xff0c;在启动时没有运行 “局域网” 保护的程序&#xff0c;而且还他是 “无法找到脚本文件”如下图&#xff1a; 发现这个东西后&#xff0c;第一反应&#xff0c;拔掉网线、因为很有可能是中病毒了&#xff0c;当时就出了一身冷汗&#xff0…

【转】成功的程序员

我算是靠坑蒙拐骗进了程序员的门&#xff0c;然后一路狂奔。26 岁之前几乎没有任何写代码的经验&#xff0c;研究生毕业却意外选择了一家不可能提供培训的初创公司&#xff0c;在每日担忧公司倒闭、害怕被炒鱿鱼以及同事冷落白眼的三重压力下逆流而上&#xff0c;一年半后离职&…

requests 分类多级页面_scrapy框架爬取多级页面

spides.py# -*- coding: utf-8 -*-import scrapyfrom weather.items import WeatherItemfrom scrapy.crawler import CrawlerProcessimport re多级分类爬取class IgxSpider(scrapy.Spider):name igx_resultallowed_domains [www.igxpt.com]# start_urls [http://www.igxpt.c…

T-SQL:SQL Server-数据库查询语句基本查询

ylbtech-SQL Server-Basic:SQL Server-数据库查询语句基本查询SQL Server 数据库查询语句基本查询。 1&#xff0c;数据库查询语句基本查询数据库SQL ServerOracle基本语句 select select * from titles select title_id,title,price,pub_id from titles select * from title …

C:打印菱形(自己的方法)

//-------------------&#xff0a;打印菱形&#xff0a;--------------------- int i,j,k; int n; printf("请输入一个奇数n&#xff1a;"); scanf("%d",&n); for (i0; i<n/2; i) { for (j0; j<n/2-i; j) { printf(" "); } for (k0; …

修改无效_修改劳动合同日期被认定无效,青岛一企业被判赔双倍工资

劳动合同法规定&#xff0c;用人单位超过一个月不满一年未与劳动者订立书面劳动合同的&#xff0c;应当向劳动者每月支付二倍的工资。在现实中&#xff0c;经常遇到的情况是续签合同时&#xff0c;已经到期的劳动合同与新合同之间的空档期&#xff0c;如果管理混乱或者遇到特殊…

HDUOJ-----2065红色病毒问题

"红色病毒"问题 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 3339 Accepted Submission(s): 1422 Problem Description医学界发现的新病毒因其蔓延速度和Internet上传播的"红色病毒"不相…

下拉框_jQuery 美化界面的下拉框

插件简介之前我们介绍过一款基于jQuery多级联动美化版Select下拉框&#xff0c;很多朋友都非常喜欢&#xff0c;可见经过美化过的下拉框的确可以让你的网页更为精妙。今天我们要介绍的这款美化界面下拉框也是基于jQuery的&#xff0c;它的特点是可以通过上下箭头微调选择&#…

字体缩放 SignedDistanceField

Unity中如果使用位图字体&#xff0c;在缩放较大的情况下&#xff0c;字体失真严重&#xff0c;使用矢量字体可能会存在内存过大的情况。 Signed Distance Field Font Rendering将字体保存在图片内&#xff0c;但是图片存储的并不是像素&#xff0c;而是距离&#xff0c;再通过…

【转】SQL删除重复数据方法

例如&#xff1a; id name value 1 a pp 2 a pp 3 b iii 4 b pp 5 b pp 6 c …

python批处理栅格转点_python获取栅格点和面值的实现

1、获取指定位置的点值&#xff1a;OutputFile open(statisticResultTXT, w)cellvaluearcpy.GetCellValue_management(inputfilepathfilenname".tif",staionXY, "1")OutputFile.write(stationID"_"filenname""str(cellvalue)\n)Outpu…

看看别人的演讲

淘宝&#xff1a;http://www.w3cmark.com/2014/137.html 转载于:https://www.cnblogs.com/gaoxue/p/4330728.html

jsp中获取WebContent路径

方法一&#xff1a; 1 <script type"text/javascript" src"../js/data.js"></script> 方法2&#xff1a; 1 <% 2 String path request.getContextPath(); 3 String basePath request.getScheme()"://"request.getServerName()&…

layui文本框填充值_layui输入框中只允许输入整数的实现方法

如下所示&#xff1a;//转化正整数function zhzs(value){value value.replace(/[^\d]/g,);if(!value){value parseInt(value);}return value;}其他的正则function clearNoNum(obj){obj.value obj.value.replace(/[^\d.]/g,""); //清除“数字”和“.”以外的字符ob…

YQL获取天气

$(function () { $.getJSON("http://query.yahooapis.com/v1/public/yql?callback?", { q: "select * from json where urlhttp://m.weather.com.cn/data/101210101.html", format: "json" }, function (data) { if (data.query.results) { v…