VC对话框最小化到托盘
1.***dlg.h头文件设置:
1)public:
void setTray();//设置托盘
NOTIFYICONDATA nid;//NOTIFYICONDATA结构包含了系统用来处理托盘图标的信息
2)protected:
// Generated message map functions
//{{AFX_MSG(C***Dlg)
afx_msg LRESULT onShowTask(WPARAM wParam,LPARAM lParam);
//}}AFX_MSG
2.***dlg.cpp实现设置:
1) #define WM_SHOWTASK (WM_USER + 1) //设置响应消息
2) BEGIN_MESSAGE_MAP(C***Dlg, CDialog)
//{{AFX_MSG_MAP(C***Dlg)
ON_MESSAGE(WM_SHOWTASK,onShowTask)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
3)最小化菜单响应
void C***Dlg::OnSysCommand(UINT nID, LPARAM lParam)
{
if(nID==SC_MINIMIZE)
{
setTray();//最小化到托盘
}
}
4)托盘函数
void C***Dlg::setTray()
{
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,"ClientTracer"); //信息提示条
Shell_NotifyIcon(NIM_ADD,&nid); //在托盘区添加图标
ShowWindow(SW_HIDE); //隐藏主窗
}
5)消息函数
LRESULT C***Dlg::onShowTask(WPARAM wParam,LPARAM lParam)
{
//wParam接收的是图标的ID,而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,"退出");
//确定弹出式菜单的位置
SetForegroundWindow();//弹出菜单失去焦点后自动消失
menu.TrackPopupMenu(TPM_LEFTALIGN,lpoint->x,lpoint->y,this);
//资源回收
HMENU hmenu=menu.Detach();
menu.DestroyMenu();
delete lpoint;
}
break;
case WM_LBUTTONDBLCLK://双击左键的处理
{
Shell_NotifyIcon(NIM_DELETE,&nid);//删除托盘图标
ShowWindow(SW_SHOWNORMAL);//显示主窗口
//this->SetWindowPos(&wndTopMost,0,0,0,0,SWP_NOMOVE|SWP_NOSIZE);//使窗口总是在最前面
}
break;
}
return 0;
}
6)继承WM_DESTROY:
void C***Dlg::OnDestroy()
{
CDialog::OnDestroy();
// TODO: Add your message handler code here
Shell_NotifyIcon(NIM_DELETE,&nid); //退出程序后删除托盘图标
}
3.说明:代码均是添加到现有MFC框架代码!
VC对话框最小化到托盘相关推荐
- VC++中把一个对话框最小化到托盘
转自:http://zhidao.baidu.com/question/39126833.html 一.托盘简介 所谓的"托盘",在Windows系统界面中,指的就是下面任务条右侧 ...
- VC++中把一个对话框最小化到托盘[转载]
From: http://hi.baidu.com/maxlcl/blog/item/61e83c87de35e529c65cc3e0.html 一.托盘简介 所谓的"托盘",在W ...
- VC实现将对话框最小化到系统托盘
1.minisysDlg.h头文件设置: 1)public: void setTray();//设置托盘 NOTIFYICONDATA nid;//NOTIFYICONDATA结构包含了系统用来 ...
- 实现 VC 最小化到 托盘
大家经常看到 程序 最小化到 托盘 但用C怎么实现呢 本人 试下哈 可以实现的 ~·~ main.cpp 修改如下 #define WM_CLICKBIT (WM_USER + 1) //定义消息 H ...
- delphi 关闭时缩小到托盘_delphi 实现最小化系统托盘
1.new -->application 2.在form1中加入一个tPopMenu 命名为pm1 3.uses ShellAPI; 4.定义一个常量在 const WM_TRAYMSG = W ...
- VC按最小化、关闭按钮、Esc都隐藏主窗口
VC按最小化.关闭按钮.Esc键都隐藏主窗口,在托盘处程序图标的右键菜单中点击,显示主窗口. 1. 按最小化时隐藏主窗口:为窗口添加WM_SIZE消息响应函数 void CdDlg::OnSize(U ...
- MFC窗口最小化到托盘
把程序放到托盘上的本质就是先在托盘区绘制一个图标,然后把程序隐藏不见,再对托盘的图标进行消息处理,就可以了.绘制图标以及确定图标所传送消息的函数只有一个,那就是 WINSHELLAPI BOOL W ...
- 【pyqt5学习】——窗口最小化至托盘、取消任务栏图标
目录 1.最小化至托盘 1)重写系统托盘类,设置托盘图标等属性 2)将具体的窗口放入托盘 2.取消任务栏界面图标 3.问题汇总 1)退出后托盘图标还是存在,没有消失 2)最小化后左下角会出现 窗口 3 ...
- 【VS开发】最小化到托盘 shell_notifyicon和NOTIFYICONDATA
shell_notifyicon和NOTIFYICONDATA Shell_NotifyIcon函数,向任务栏的状态栏发送一个消息 函数原型 BOOL Shell_NotifIcon( DWORD d ...
最新文章
- WaitForSingleObject和WaitForMultipleObjects用法
- matlab 格式化文件,格式化matlab文件01_新建普通文件
- 手机qq显示鸿蒙在线,手机QQ显示对方朋友网络状态是“手机在线”是什么意思,明明对方是WiFi在线,怎么显示的是手机在线...
- 信息抽取(一)机器阅读理解——样本数据处理与Baseline模型搭建训练(2020语言与智能技术竞赛)
- halcon/c++接口基础 之 控制参数
- Linux kernel中常见的宏整理
- 复旦大学提出《Meta-FDMixup》解决跨域小样本学习中的域偏移问题
- 薛家德(帮别人名字作诗)
- 有趣的mysql string和0比较返回1的问题
- Java Date总结
- 【UCSC Genome Browser】- Genes and Gene Predictions - NCBI RefSeq
- 【物联网毕设基础】单片机:红外遥控通信原理
- 黎曼Zeta函数,人类文明黎曼Zeta函数,人类文明永恒的的纪念
- html怎么设置div只读,html怎么设置只读状态
- 一段代码之仿LOL移动方式
- KSO-.NETCore中配置swagger分级
- ZYNQ7010 CAN的官方例程改为XCANPS_MODE_NORMAL模式,程序没跑通
- 在线课程推荐(国外篇)
- Leecode 刷题归纳(Python——LeetCode 精选 TOP 面试题)
- 官网下载eclipse被墙、无法访问解决
热门文章
- 导致溢出_由整数类型溢出导致的英雄联盟峡谷惨案
- mysql递归查询所有上下节点_【转】MySQL之Spider存储引擎原理详解
- BZOJ4810: [Ynoi2017]由乃的玉米田
- [C#]关于Access的“INSERT INTO 语句的语法错误”问题
- gym-101343K-Counting Time
- 单链表的前K个的逆序输出
- Redis的三种启动方式【转】
- 转自CSDNattilax的专栏 :自适应网页设计 跟 响应式 设计的区别跟原理and实践总结...
- magento 修改产品类型的方法 change product type
- Ubuntu18.04安装Gaussian16和GaussView 6