当鼠标放到托盘图标上时会显示一个提示信息,我想动态修改这个提示信息的内容,就是在鼠标不移开的情况下显示其他的东西。请问哪位知道该怎么改。谢谢

解决方案 »

  1.   

    NOTIFYICONDATA nid;
    在nid中的uCallbackMessage的响应函数中,用计时器计算鼠标停留的时间,
    如果超过一定的时间,可以执行以下代码改变Tip的内容。
    ...
    strcpy(nid.szTip , "***");
    ...
    Shell_NotifyIcon(NIM_MODIFY , &nid);
    当然也可以自己生成自己的Tip定制窗口,这样显示的内容可以灵活一些。
      

  2.   

    如果鼠标不拿开再放上去的话用Shell_NotifyIcon(NIM_MODIFY , &nid);产生的改动不会被刷新。自已定制TIP窗口该怎么做?
      

  3.   

    正如spidertan所说的那样,可以试上一试
      

  4.   

    NOTIFYICONDATA m_struNID;
    _tcscpy(m_struNID.szTip, _T("程序名称"));
    Shell_NotifyIcon(NIM_ADD, &m_struNID);
    bflyswh(冰雪世界)说的很正确!!!
    你说的:如果鼠标不拿开再放上去的话用Shell_NotifyIcon(NIM_MODIFY , &nid);产生的改动不会被刷新。
    然后你可以调用定时器执行
    Shell_NotifyIcon(NIM_MODIFY, &m_struNID);
    不断地进行刷新
      

  5.   

    对,如果鼠标不移开是不会更新的,用一个小窗口代替Tip吧
      

  6.   

    BOOL TaskBarAddIcon(HWND hwnd, UINT uID, HICON hicon, LPSTR lpszTip)
    {
    BOOL res;
    NOTIFYICONDATA tnid;
    tnid.cbSize = sizeof(NOTIFYICONDATA);
    tnid.hWnd = hwnd;
    tnid.uID = uID;
    tnid.uFlags = NIF_ICON | NIF_TIP | NIF_MESSAGE;
    tnid.uCallbackMessage = MYWM_NOTIFYICON;
    tnid.hIcon = hicon;
    strcpy(tnid.szTip,lpszTip);
    res=Shell_NotifyIcon(NIM_ADD, &tnid); return res;
    }
        BOOL TaskBarDeleteIcon(HWND hwnd, UINT uID)
    {
    BOOL res;
    NOTIFYICONDATA tnid;
    tnid.cbSize = sizeof(NOTIFYICONDATA);
    tnid.hWnd = hwnd;
    tnid.uID = uID;
    res = Shell_NotifyIcon(NIM_DELETE, &tnid);
    return res;
    }