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

//***********************************************************
//函数名称 : 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);
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值