



免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
(一)原理程序实现:最小化时隐藏至托盘,双击显示窗口,右键弹出快捷菜单“退出”并添加了响应函数。1、托盘化的原理:首先 要将窗口隐藏,然后在右下角托盘中绘制图标。2、恢复的原理:将窗口显示,再将托盘中的图片删除。(二)总体程序实现1、首先建立一个基于对话框的MFC程序CTrayDlg。然后在TrayDlg.h文件里加入自定义消息WM_SHOWTASK:#define WM_SHOWTASK(WM_USER + 0x100)/一般数值大于100/AFX_MSG(CTrayDlg)afx_msg LRESULT OnShowTask(WPARAM wParam,LPARAM lParam);/AFX_MSGDECLARE_MESSAGE_MAP()2、在TrayDlg.cpp文件里加入如下代码:BEGIN_MESSAGE_MAP(CTrayDlg, CDialog)/AFX_MSG_MAP(CTrayDlg)中间加入消息声明:ON_MESSAGE(WM_SHOWTASK,OnShowTask)/AFX_MSG_MAPEND_MESSAGE_MAP()3、在CTrayDlg的:OnSysCommand(UINT nID, LPARAM lParam)函数体中增加一个命令响应:if(nID=SC_MINIMIZE)ToTray();/最小化到托盘的函数(三)具体函数内容1、最小化到托盘函数TrayDlg.h中添加函数声明:void ToTray();TrayDlg.cpp中定义函数体:void CTrayDlg:ToTray()NOTIFYICONDATAnid;/NOTIFYICONDATA结构包含了系统用来处理托盘图标的信息, /它包括选择的图标、回调消息、提示消息和图标对应的窗口等内容。nid.cbSize=(DWORD)sizeof(NOTIFYICONDATA);/以字节为单位的这个结构的大小nid.hWnd=this-m_hWnd;/接收托盘图标通知消息的窗口句柄nid.uID=IDR_MAINFRAME;/应用程序定义的该图标的ID号nid.uFlags=NIF_ICON|NIF_MESSAGE|NIF_TIP ;/设置该图标的属性nid.uCallbackMessage=WM_SHOWTASK;/应用程序定义的消息ID号,此消息传递给hWndnid.hIcon=LoadIcon(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDR_MAINFRAME);/图标的句柄strcpy(nid.szTip,我的托盘我作主);/鼠标停留在图标上显示的提示信息 Shell_NotifyIcon(NIM_ADD,&nid);/在托盘区添加图标de函数,函数说明见文章附录ShowWindow(SW_HIDE);/隐藏主窗口2、恢复界面函数/wParam接收的是图标的ID,而lParam接收的是鼠标的行为LRESULT CTrayDlg:OnShowTask(WPARAM wParam,LPARAM lParam)if(wParam!=IDR_MAINFRAME)return 1;switch(lParam) case WM_RBUTTONUP: /右键起来时弹出快捷菜单,这里只添加一个菜单项“退出”LPPOINT lpoint=new tagPOINT;:GetCursorPos(lpoint); /得到鼠标位置CMenu menu;menu.CreatePopupMenu(); /声明一个弹出式菜单/增加菜单项“退出”,点击则发送消息WM_DESTROY给主窗口(已隐藏),将程序结束。menu.AppendMenu(MF_STRING,WM_DESTROY,退出);/确定弹出式菜单的位置menu.TrackPopupMenu(TPM_LEFTALIGN,lpoint-x,lpoint-y,this);/资源回收HMENU hmenu=menu.Detach();menu.DestroyMenu();delete lpoint;break;case WM_LBUTTONDBLCLK: /双击左键的处理this-ShowWindow(SW_SHOW); /简单的显示主窗口 DeleteTray();break;default: break;return 0;3、删除托盘图标函数在TrayDlg.h文件中添加函数DeleteTray()声明:void DeleteTray();cpp中其函数体为:void CTrayDlg: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,程序名称);/信息提示条为“计划任务提醒”Shell_NotifyIcon(NIM_DELETE,&nid);/在托盘区删除图标附录:Shell_NotifyIcon:/原型WINSHELLAPI BOOL WINAPI Shell_NotifyIcon( DWORD dwMessage,PNO
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025江西银行高级专业人才招聘4人考前自测高频考点模拟试题及答案详解(名校卷)
- 2025福建省船舶工业集团有限公司招聘5人考前自测高频考点模拟试题及答案详解(典优)
- IG4-生命科学试剂-MCE
- 2025年电容剪脚机项目建议书
- Gyromitrin-生命科学试剂-MCE
- 2025河南洛阳市宜阳县选聘县属国有集团公司部长10人模拟试卷及答案详解一套
- 2025广东省蕉岭县招聘卫生类急需紧缺人才5人考前自测高频考点模拟试题及完整答案详解1套
- 2025年移动通讯用数字程控交换机合作协议书
- 2025安徽芜湖市鸠江区招聘区属国有企业领导人员拟聘用人员模拟试卷附答案详解(黄金题型)
- 进口合同书范本
- GB/T 46239.1-2025物流企业数字化第1部分:通用要求
- 2025年核电池行业研究报告及未来发展趋势预测
- 2025重庆机场集团有限公司社会招聘150人(第二次)考试参考题库及答案解析
- 2025年汽车制造业供应链风险管理案例分析报告
- 社区精神障碍工作总结
- 2025北京房山区区直部门和乡镇(街道)全日制临聘人员招聘37人考试参考题库及答案解析
- 技术方案评审与验收标准模板
- 镀膜车间安全培训课件
- 中水资源化综合利用建设项目规划设计方案
- 政府采购管理 课件 第十三章 政府采购绩效评价
- 机场安检危险品运输课件
评论
0/150
提交评论