Shell_NotifyIcon里可以设置ToolTip,但要鼠标移上去才会显示,不适用。要能主动弹出的,就是“发现新硬件”或者“磁盘空间低”那种,怎么做?

解决方案 »

  1.   

    ON_MESSAGE(MYWM_NOTIFYICON,OnMyIconNotify)void CPageDlg::OnMyIconNotify(WPARAM wParam,LPARAM lParam)
    {
    UINT uMouseMsg=LOWORD(lParam);
    switch(uMouseMsg)
    {
    case WM_LBUTTONDOWN:
    //处理左键
    break; case WM_RBUTTONDOWN:
    //处理右键(出菜单)
    break;  
    }
    }
      

  2.   

    不好意思,要先向任务栏增加:
    下面的:MYWM_NOTIFYICON是自定义消息,为: #define MYWM_NOTIFYICON WM_USER+1NOTIFYICONDATA d;
    d.cbSize=sizeof(NOTIFYICONDATA);
    d.hWnd=hwnd;
    d.uID=uID;
    d.uFlags=NIF_ICON | NIF_TIP | NIF_MESSAGE;
    d.uCallbackMessage=MYWM_NOTIFYICON;
    d.hIcon=hicon;

    if(lpszTip)
    lstrcpy(d.szTip,lpszTip);
    else
    d.szTip[0]='\0';
    return Shell_NotifyIcon(NIM_ADD,&d);
      

  3.   

    上面的:
    (HWND hwnd, UINT uID, HICON hicon, LPSTR lpszTip)
    全部是参数.
      

  4.   

    弹气泡要用的:结构: NotifyIconData
    API: Shell_NotifyIcon自己查吧.
      

  5.   

    主动弹?  主动弹你写个方法自己调一下不就行了??void YOUCLASS::ShowBallon(LPCTSTR title,LPCTSTR text,UINT type,UINT timeout)
    {
    if(timeout < 0)return;
    NotifyData data;
    data.cbSize = sizeof(data);
    data.hWnd = m_hWnd;
    data.uID = 0;
    data.uTimeoutOrVersion = timeout;
    data.szInfoTitle = title;
    data.szInfo = text;
    data.dwInfoFlags = (DWORD)type;   //Error=0x03, Info=0x01, None=0x00, Warning=0x02Shell_NotifyIcon(0x01, &data);  //Add=0x00, Delete=0x02, Modify=0x01
    }弹出:  ShowBallon("title","teste a a oh!",0x1,5);
      

  6.   

    不好意思,上面NotifyIconData写成了NotifyData
      

  7.   

    怎么在弹出的气泡上增加链接呢?URL之类的
      

  8.   

    10楼的这个方法好像行不通啊,每次调用Shell_NotifyIcon()的时候返回值都是False啊!