设为首页 加入收藏

TOP

11.5.3 控制模块最小化到托盘功能的实现
2013-10-07 14:34:30 来源: 作者: 【 】 浏览:65
Tags:11.5.3 控制 模块 最小化 托盘 功能 实现

11.5.3  控制模块最小化到托盘功能的实现

当用户单击"后台运行"按钮时,控制模块将在托盘中添加一个截屏图标,并隐藏主窗体。功能实现如下:

  1. 01  void CScreenShotsDlg::OnHide()   
  2. 02  {  
  3. 03      NOTIFYICONDATA nid;   
  4. 04      nid.cbSize=(DWORD)sizeof(NOTIFYICONDATA);   
  5. 05      nid.hWnd=this->m_hWnd;   
  6. 06      nid.uID=IDR_MAINFRAME;   
  7. 07      nid.uFlags=NIF_ICON|NIF_MESSAGE|NIF_TIP ;   
  8. 08      nid.uCallbackMessage=WM_SHOTS;          //自定义的消息名称   
  9. 09      nid.hIcon=LoadIcon(AfxGetInstanceHandle(),  
  10. 10                          MAKEINTRESOURCE(IDR_MAINFRAME));   
  11. 11      strcpy(nid.szTip,"ScreenShots");        //信息提示条为ScreenShots   
  12. 12      Shell_NotifyIcon(NIM_ADD,&nid);     //在托盘区添加图标   
  13. 13      ShowWindow(SW_HIDE);                    //隐藏主窗口  
  14. 14  }  

【代码解析】

Shell_NotifyIcon()函数向托盘发送一个消息,以添加或删除一个图标。在这里第一个参数为NIM_ADD向托盘区域添加一个图标。此时第二个参数NOTIFYICONDATA型结构nid中的hWnd和uID成员用来标示这个图标,以便以后再次使用Shell_NotifyIcon对此图标操作。ShowWindow()函数以SW_HIDE为参数,可实现隐藏当前窗体的功能。第8行为这个托盘图标添加了一个自定消息WM_SHOTS,当用户鼠标双击、单击这个图标时,它将向第5行注册的窗体发送这个消息。


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇11.5.4 控制模块在托盘中消息处理.. 下一篇11.5.1 功能控制模块的界面设计及..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: