[MFC]托盘图标删除后不自动消失的问题
前言
给软件加上系统托盘这个功能参照的是这篇文章:一个托盘程序演示 -闹钟 Alert,过程比较顺利,但是后来发现关闭的时候虽然调用了删除托盘图标的代码,但是需要把鼠标移上去才消失。
正文
一、问题
删除图标的时候没有指定uID。 - - #(文章中的代码也有此问题!)
二、 完整代码
NOTIFYICONDATA nd;
nd.cbSize = sizeof (NOTIFYICONDATA);
nd.hWnd = m_hWnd;
nd.uID = IDI_ICON;
Shell_NotifyIcon(NIM_DELETE, &nd);
nd.cbSize = sizeof (NOTIFYICONDATA);
nd.hWnd = m_hWnd;
nd.uID = IDI_ICON;
Shell_NotifyIcon(NIM_DELETE, &nd);
代码说明:
这个IDI_ICON就是创建的时候指定的那个nID。
结束
写文章前搜索了一下,果然有人遇到同样的问题;写完文章后才发现那篇文章下面的评论里面有人提到这个问题及解决办法 - - # 不忍心删了,留下来给搜索引擎用吧。