zoukankan      html  css  js  c++  java
  • Vc++2008托盘气泡程序

    新建一个MFC 对话框程序

    添加成员变量   NOTIFYICONDATA m_tnd;

    添加方法

    代码
    BOOL SetupTrayIcon(HWND hwnd)
    {
        
    //ZeroMemory(&m_tnd, sizeof(NOTIFYICONDATA));
        m_tnd.cbSize              = sizeof( NOTIFYICONDATA );
        m_tnd.hWnd              
    = hwnd;//this->GetSafeHwnd();//所在对话框窗口句柄
        m_tnd.uID              = IDR_MAINFRAME;
        m_tnd.uFlags              
    = NIF_MESSAGE | NIF_ICON | NIF_TIP;
        
    //m_tnd.dwInfoFlags      = NIIF_USER;

        m_tnd.uCallbackMessage 
    = WM_LBUTTONDBLCLK;  
        
    //m_tnd.uTimeout         = 3;
        m_tnd.hIcon                 = m_hIcon;//需要指定一个图标!这里是所在对话框的图标
        wcscpy_s(m_tnd.szTip,_T("我的任务栏程序"));
        
    return Shell_NotifyIcon( NIM_ADD, &m_tnd );
    }

    上面的代码新建一个图标在系统托盘处。

     当推出系统时删除托盘图标

    BOOL RemoveTrayIcon()
    {
        
    return Shell_NotifyIcon( NIM_DELETE, &m_tnd );
    }


    添加显示气泡方法

    代码
    BOOL ShowToolTip(LPCTSTR szMsg,LPCTSTR szTitle,DWORD dwInfoFlags,UINT uTimeout)
    {
        m_tnd.cbSize
    =sizeof(NOTIFYICONDATA);
        m_tnd.uFlags 
    = NIF_INFO;
        m_tnd.uVersion 
    = NOTIFYICON_VERSION;
        m_tnd.uTimeout 
    = uTimeout;
        m_tnd.dwInfoFlags 
    = dwInfoFlags;
        wcscpy_s( m_tnd.szInfoTitle, szTitle );
    //气泡标题
        wcscpy_s( m_tnd.szInfo,      szMsg     );//气泡内容
        
    //wcscpy_s( m_tnd.szTip,       _T("tip")       );
        SetTimer(11000, NULL);
        
    return Shell_NotifyIcon( NIM_MODIFY, &m_tnd );
    }

    为了让气泡消失,设置一个定时器,过一段时间将气泡的提示信息设为空。就能关闭气泡显示了。

    代码

    BOOL CloseToolTip()
    {
        m_tnd.cbSize
    =sizeof(NOTIFYICONDATA);
        m_tnd.uFlags 
    = NIF_INFO;
        wcscpy_s( m_tnd.szInfo,      _T(
    "")     );//气泡内容 设置为空即可取消气泡提示
        return Shell_NotifyIcon( NIM_MODIFY, &m_tnd );
    }


    void OnTimer(UINT_PTR nIDEvent)
    {
        
    // TODO: 在此添加控件通知处理程序代码
        KillTimer(nIDEvent);
        CloseToolTip();
    }


     调用方法:

    在OnInitDialog调用 SetupTrayIcon(m_hWnd);

    在OnClose里调用 RemoveTrayIcon

    在某个按钮事件里写ShowToolTip(_T("测试消息"), _T("测试"));

     注意:targetver.h需要修改如下2个定义:

    代码
    #ifndef WINVER                          // 指定要求的最低平台是 Windows Vista。
    //#define WINVER 0x0600           // 将此值更改为相应的值,以适用于 Windows 的其他版本。
    #define WINVER 0x0501 
    #endif

    #ifndef _WIN32_WINNT            
    // 指定要求的最低平台是 Windows Vista。
    //#define _WIN32_WINNT 0x0600     // 将此值更改为相应的值,以适用于 Windows 的其他版本。
    #define WINVER 0x0501 
    #endif


  • 相关阅读:
    UGUI组件之Slider组件简单笔记
    UGUI事件之Drag拖拽事件
    C#的数据类型之最常用的几种类型
    UGUI组件之Text文本组件简单笔记
    UGUI组件之Toggle 组件简单笔记
    Print 与Debug.Log的区别
    Unity脚本用VS打开出现 "以下文件中的行尾不一致,要将行尾标准化吗?"
    UGUI组件之Image 组件简单笔记
    UGUI事件之Pointer指针事件
    定制自己的Unity脚本模板
  • 原文地址:https://www.cnblogs.com/likwo/p/1672870.html
Copyright © 2011-2022 走看看