编程实现最小化窗口到桌面右下角图标的代码

简介:
//***********************************************************
//函数名称 : ToTray
//函数功能 : 最小化到系统托盘
//输入参数 : 
//输出参数 : 
//返回代码 : 
//***********************************************************
//本地注释 : 
//***********************************************************
void CBackupUIDlg::ToTray()
{
 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;//自定义的消息名称  
 nid.hIcon=LoadIcon(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDR_MAINFRAME));  
 _tcscpy_s(nid.szTip,sizeof(nid.szTip)+1,_T("备份客户端"));//信息提示条为“备份客户端”
 Shell_NotifyIcon(NIM_ADD,&nid);//在托盘区添加图标  
 ShowWindow(SW_HIDE);//隐藏主窗口   
}
//**************************************************************
//函数名称 : onShowTask
//函数功能 : 托盘事件回调函数
//输入参数 : 
//输出参数 : 
//返回代码 : 
//**************************************************************
//本地注释 : 
//**************************************************************
LRESULT CBackupUIDlg::onShowTask(WPARAM wParam,LPARAM lParam)
{
 if(wParam!=IDR_MAINFRAME) return 1;  
 switch(lParam)   
 {   
 case WM_RBUTTONUP://右键起来时弹出快捷菜单,这里只有一个“关闭”   
  {      
   LPPOINT lpoint=new tagPOINT;  
   ::GetCursorPos(lpoint);//得到鼠标位置
   CMenu menu;  
   //载入事先定义的菜单
   VERIFY(menu.LoadMenu(IDR_MENU_TRAY));
   CMenu *pMenu = (CMenu *)(menu.GetSubMenu(0));
   ASSERT(pMenu != NULL);
   //确定弹出式菜单的位置   
   pMenu->TrackPopupMenu(TPM_LEFTALIGN,lpoint->x,lpoint->y,this); 
   //资源回收   
   HMENU hmenu=menu.Detach();  
   menu.DestroyMenu(); delete lpoint;   
  }   
  break; 
 case WM_LBUTTONDBLCLK://双击左键的处理   
  {   
   this->ShowWindow(SW_SHOW);//简单的显示主窗口完事儿   
  }
  break;   
 }   
 return   0;  
}
/*********************************************/
/*                    最小化到托盘后点击右键退出                        */
/*********************************************/
void CBackupUIDlg::OnExit()
{
 ::PostQuitMessage(0);
}


本文转自jazka 51CTO博客,原文链接:http://blog.51cto.com/jazka/188136,如需转载请自行联系原作者
相关文章
|
18天前
|
C#
C#如何实现窗体最小化到托盘
C#如何实现窗体最小化到托盘
17 0
|
C# Windows
C#实现无标题栏窗体点击任务栏图标正常最小化或还原的解决方法
对于无标题栏窗体,也就是FormBorderStyle等于System.Windows.Forms.FormBorderStyle.None的窗体,点击任务栏图标的时候,是不能象标准窗体那样最小化或还原的。
1163 0
|
8月前
|
图形学
|
9月前
|
C++ 计算机视觉 Python
Qt+C++自定义标题栏最大最小化关闭堆叠切换美化
这篇博客针对<<Qt+C++自定义标题栏最大最小化关闭堆叠切换美化>>编写代码,代码整洁,规则,易读。 学习与应用推荐首选。
70 0
|
11月前
|
API vr&ar 图形学
|
数据可视化
搭建完菜单后运行不显示菜单的原因及其解决方法(拼图小游戏)
在搭建完菜单以后,程序不报错也能运行,但是运行结果就是一个框,就跟没有搭建过菜单一样,如下图所示,没有我们想象中的菜单栏,更别说有下拉菜单了,但是如果将搭建菜单的代码单独放到一个测试类中去测试一下的话,会显示出来菜单,也就是说我们搭建菜单的核心代码是没有问题的
124 0
搭建完菜单后运行不显示菜单的原因及其解决方法(拼图小游戏)
QT软件开发: 窗口打开固定在屏幕中间或者右下角
QT软件开发: 窗口打开固定在屏幕中间或者右下角
323 0
|
调度 Windows
Mac 技术篇-触发角功能设置一步回到桌面、快速锁屏、展示启动图应用列表
Mac 技术篇-触发角功能设置一步回到桌面、快速锁屏、展示启动图应用列表
150 0
Mac 技术篇-触发角功能设置一步回到桌面、快速锁屏、展示启动图应用列表
NOTEPAD++几个有用的工具栏按钮
NOTEPAD++几个有用的工具栏按钮
NOTEPAD++几个有用的工具栏按钮
IDEA 隐藏四周的工具按钮栏
版权声明:本文首发 http://asing1elife.com ,转载请注明出处。 https://blog.csdn.net/asing1elife/article/details/82620095 ...
1258 0