如题:要求在系统托盘的冒泡提示中加入超链接,找了半天也没找到相关的资料其实这个超链接只是用来响应某个函数而已清高手指教下目的如下:
1:在托盘气泡中加入超链接(自绘的那种方形的窗口就算了,要得就是那种气球的样子和windows一样的才行)
2:这个超链接必须响应某个函数,怎么响应?
3:气泡提示在window xp下无法超时关闭,怎么样让气泡提示超时,比如用settimer也行,怎样在10秒的时候关闭气泡求指点啊···非常苦恼···能有代码最好,codeproject上的我也都找了没有符合我要求的···

解决方案 »

  1.   

    要用mfc 实现哦···反正C++的就行,vb那些例子就不要了
      

  2.   

    可是我用的是 Shell_NotifyIcon(NIM_MODIFY, &m_nid);这种方式的气泡这个窗体不是我来控制的呀···咋办
      

  3.   

    创建气泡(托盘),nid.uTimeout=1000; 就是你需要的超时关闭时间;NOTIFYICONDATA nid;nid.cbSize=(DWORD)sizeof(NOTIFYICONDATA);
    nid.hWnd=hWnd;
    nid.uID=IDR_MAINFRAME;
    nid.uFlags=NIF_ICON|NIF_MESSAGE|NIF_TIP|NIF_INFO;
    nid.dwInfoFlags=NIIF_INFO;
    nid.uCallbackMessage=WM_SHOW_TASK;//自定义的在托盘区显示图标的消息,
    //鼠标移动到托盘图标上即发送此消息
    nid.hIcon=LoadIcon(hInst,MAKEINTRESOURCE(IDR_MAINFRAME));
    wcscpy(nid.szInfoTitle, L"气泡助手");
    wcscpy(nid.szInfo, L"欢迎使用");
    nid.uTimeout=1000; 
    wcscpy(nid.szTip,L"气泡助手");//信息提示条
    Shell_NotifyIcon(NIM_ADD,&nid);//在托盘区添加图标
    定义一个MEUN菜单 IDR_MENU,在鼠标右键中响应这个菜单的选项;case WM_RBUTTONUP://右键起来时弹出快捷菜单
    LPPOINT lpoint=new tagPOINT;
    ::GetCursorPos(lpoint);//得到鼠标位置 HMENU hmenu;
    HMENU hmenuTrackPopup; hmenu = LoadMenu(hInst, MAKEINTRESOURCE(IDR_MENU));//加载子菜单
    SetForegroundWindow(hWnd);
    hmenuTrackPopup = GetSubMenu(hmenu, 0); //获得子菜单的句柄
    DWORD Made = TrackPopupMenu(hmenuTrackPopup,
    TPM_LEFTALIGN|TPM_LEFTBUTTON|TPM_NONOTIFY
    |TPM_RETURNCMD,lpoint->x,lpoint->y,0,hWnd,NULL);//使用子菜单

    switch(Made)
    {
    case ID_TEST: 
    //ID_TEST是菜单的一个选项,在这里增加你的代码,例如打开一个网页的链接
                      ShellExecute(NULL,L"open",L"http://www.baidu.com",NULL,NULL,SW_SHOW);
    break;
    }break;
      

  4.   

    创建气泡(托盘),nid.uTimeout=1000; 就是你需要的超时关闭时间;NOTIFYICONDATA nid;nid.cbSize=(DWORD)sizeof(NOTIFYICONDATA);
    nid.hWnd=hWnd;
    nid.uID=IDR_MAINFRAME;
    nid.uFlags=NIF_ICON|NIF_MESSAGE|NIF_TIP|NIF_INFO;
    nid.dwInfoFlags=NIIF_INFO;
    nid.uCallbackMessage=WM_SHOW_TASK;//自定义的在托盘区显示图标的消息,
    //鼠标移动到托盘图标上即发送此消息
    nid.hIcon=LoadIcon(hInst,MAKEINTRESOURCE(IDR_MAINFRAME));
    wcscpy(nid.szInfoTitle, L"气泡助手");
    wcscpy(nid.szInfo, L"欢迎使用");
    nid.uTimeout=1000; 
    wcscpy(nid.szTip,L"气泡助手");//信息提示条
    Shell_NotifyIcon(NIM_ADD,&nid);//在托盘区添加图标
    定义一个MEUN菜单 IDR_MENU,在鼠标右键中响应这个菜单的选项;case WM_RBUTTONUP://右键起来时弹出快捷菜单
    LPPOINT lpoint=new tagPOINT;
    ::GetCursorPos(lpoint);//得到鼠标位置 HMENU hmenu;
    HMENU hmenuTrackPopup; hmenu = LoadMenu(hInst, MAKEINTRESOURCE(IDR_MENU));//加载子菜单
    SetForegroundWindow(hWnd);
    hmenuTrackPopup = GetSubMenu(hmenu, 0); //获得子菜单的句柄
    DWORD Made = TrackPopupMenu(hmenuTrackPopup,
    TPM_LEFTALIGN|TPM_LEFTBUTTON|TPM_NONOTIFY
    |TPM_RETURNCMD,lpoint->x,lpoint->y,0,hWnd,NULL);//使用子菜单

    switch(Made)
    {
    case ID_TEST: 
    //ID_TEST是菜单的一个选项,在这里增加你的代码,例如打开一个网页的链接
                      ShellExecute(NULL,L"open",L"http://www.baidu.com",NULL,NULL,SW_SHOW);
    break;
    }break;
      

  5.   

    我发现XP下无法使用超时功能,不过只要吧气泡内容置空再弹一次气泡就没了,等于超时功能,配合ontimer用还可以超链接还是没搞定哈