各位大哥,加到托盘里的图标如何删除啊?

hardboy_du 2003-04-16 04:02:21
程序退出的时候图标不消失,只有将鼠标放到图标上才消失,再响应WM_DESTROY 时加入Shell_Notifyicon(NIM_DELETE,&nid);不行啊!
...全文
97 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhdleo 2003-04-16
  • 打赏
  • 举报
回复
首先问一下:用什么程序作的?
SDI还是DLG?
因为有时候可能略有不同。

其次最好把你的隐藏到托盘的代码和又问题的删除代码都贴出来。

-------------------------------------------------------------
这是我的;-----响应的是关闭菜单,到里一样。
void CTrayDlg::OnClose()
{
// TODO: Add your command handler code here

NOTIFYICONDATA tnid;
tnid.cbSize=sizeof(NOTIFYICONDATA);
tnid.hWnd=AfxGetMainWnd()->m_hWnd;
tnid.uID=IDR_MAINFRAME;
Shell_NotifyIcon(NIM_DELETE,&tnid);

CDialog::OnClose(); //这个
this->PostMessage(WM_CLOSE,0,0); //这个

}
--------------------------------------------
上面是Dialog
---------------------------------------
下面的是SDI的
void CMainFrame::OnMenuExit()
{
// TODO: Add your command handler code here
NOTIFYICONDATA tnid;
tnid.cbSize=sizeof(NOTIFYICONDATA);
tnid.hWnd=this->m_hWnd;
tnid.uID=IDR_MAINFRAME;
Shell_NotifyIcon(NIM_DELETE,&tnid);

//CMainFrame::OnClose(); //这句就不能要了
this->PostMessage(WM_CLOSE,0,0); //但这个不能少!
}
tyzyx 2003-04-16
  • 打赏
  • 举报
回复
gz
hudan 2003-04-16
  • 打赏
  • 举报
回复
在Shell_Notifyicon(NIM_DELETE,&nid);这行加个断点,
调试一下,看是否运行了it.
shilong 2003-04-16
  • 打赏
  • 举报
回复
你放到主窗口的析构函数里试试
void CMainFrame::~CmainFrame()
{
 NOTIFYICONDATA tnid;
 tnid.cbSize=sizeof(NOTIFYICONDATA);
 tnid.hWnd=this->m_hWnd;
 tnid.uID=IDR_MAINFRAME;//保证删除的是显示的图标
 Shell_NotifyIcon(NIM_DELETE,&tnid);
}
shilong 2003-04-16
  • 打赏
  • 举报
回复
nid是不是你图标的ID?
另外,你的程序是不是没执行OnDestroy就退出了
joachern 2003-04-16
  • 打赏
  • 举报
回复
关注,要么你给托盘发个消息
hardboy_du 2003-04-16
  • 打赏
  • 举报
回复
是不是分少啊

15,980

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧