请教1个问题,我使用Shell_NotifyIcon 函数为程序制作了1个任务栏图标,但如何在关闭程序时把它去掉呢?我使用了Shell_NotifyIcon (NIM_DELETE,&tnid)语句,是从书上抄的,可是不起作用?请大家帮助我,我的QQ是79110201,email是[email protected]

解决方案 »

  1.   

    直接这样写,关闭程序后还需把鼠标移到托盘程序图标上才能把图标delete掉
    底下是我写的程序,没问题的
    在主框架类中截获WM_Close消息,在其中处理删去托盘图标
    void CMainFrame::DeleteTrayIcon()
    {
    m_mytray.cbSize = sizeof(NOTIFYICONDATA); 
    m_mytray.hWnd =GetSafeHwnd(); 
        m_mytray.uID = ID_MYSYSTEMTRAY;     
    m_mytray.uFlags =0; 
     //   m_mytray.uCallbackMessage = WM_MYSYSTEMTRAY; 
    // m_mytray.hIcon = AfxGetApp()->LoadIcon (IDI_ICON3); 
    Shell_NotifyIcon(NIM_DELETE, &m_mytray); 
    }void CMainFrame::OnClose() 
    {
    // TODO: Add your message handler code here and/or call default
    DeleteTrayIcon();
    CFrameWnd::OnClose();
    }
      

  2.   

    我写托盘是用的:           case WM_CLOSE:
    Shell_NotifyIcon(NIM_DELETE,&tnd);//
    PostQuitMessage(0);
    return 0;