11.5.5 关闭截屏工具功能的实现
当用户单击"退出程序"按钮,或在托盘工具图标右键菜单上单击退出选项时,整个工具将被关闭。如果在托盘中有工具的图标,这个图标也将被删除。
- 01 void CScreenShotsDlg::OnOK()
- 02 {
- 03 NOTIFYICONDATA nid;
- 04 nid.cbSize=(DWORD)sizeof(NOTIFYICONDATA);
- 05 nid.hWnd=this->m_hWnd;
- 06 nid.uID=IDR_MAINFRAME;
- 07 nid.hIcon=LoadIcon(AfxGetInstanceHandle(),
- 08 MAKEINTRESOURCE(IDR_MAINFRAME));
- 09 Shell_NotifyIcon(NIM_DELETE,&nid); //在托盘区添删除图标
- 10 CDialog::OnOK();
- 11 }
【代码解析】
删除图标的过程和添加图标的过程非常相似,但是所需的nid成员变量变少,仅需窗体指针及图标ID便可。另外将Shell_NotifyIcon()函数的第一个参数设为NIM_DELETE,意为删除图标。