NOTIFYICONDATA结构

NOTIFYICONDATA结构//农机调度项目代码NOTIFYICONDATAm_notifyData;m_notifyIcon.ChangeIcon(IDI_PAUSE,_T("监控终端server已暂停&quot

大家好,又见面了,我是你们的朋友全栈君。

//农机调度项目代码

NOTIFYICONDATA m_notifyData;

m_notifyIcon.ChangeIcon(IDI_PAUSE, _T(“监控终端server已暂停”));

void CMyNotifyIcon::AddIcon(UINT idResourceIcon, LPCTSTR tip)
{
 HICON hIcon = AfxGetApp()->LoadIcon(idResourceIcon);
 ASSERT(hIcon != NULL);

 m_notifyData.hIcon = hIcon;
 wsprintf(m_notifyData.szTip, _T(“%s”), tip);

 m_notifyData.uFlags = NIF_ICON | NIF_MESSAGE | NIF_TIP;

 Shell_NotifyIcon(NIM_ADD, &m_notifyData);
}

 

—- NOTIFYICONDATA结构包括了系统用来处理托盘图标的信息,它包括选择的图标、回调消息、提示消息、图标相应的窗体等内容。其定义为:



 

    typedef struct _NOTIFYICONDATA {

        DWORD cbSize;        

              //以字节为单位的这个结构的大小

        HWND hWnd;                

              //接收托盘图标通知消息的窗体句柄

        UINT uID;     //应用程序定义的该图标的ID

        UINT uFlags;         

              //设置该图标的属性

        UINT uCallbackMessage;  

              //应用程序定义的消息ID号,此消息传递给hWnd

        HICON hIcon;           

              //图标的句柄

      char szTip[64];         

         //鼠标停留在图标上显示的提示信息

    } NOTIFYICONDATA, *PNOTIFYICONDATA;

该结构中,成员uFlags能够使下列之中的一个或组合:

    NIF_ICON        设置成员hIcon有效

    NIF_MESSAGE    设置成员uCallbackMessage有效

    NIF_TIP           设置成员szTip有效



 

—- 二、Shell_NotifyIcon函数

—- 全局函数Shell_NotifyIcon() 用于在托盘上添加、删除或改动图标。其原型为:



 

           WINSHELLAPI  BOOL  WINAPI

                 Shell_NotifyIcon( DWORD dwMessage,

                      PNOTIFYICONDATA pnid);



 

—- Pnid是上面的NOTIFYICONDATA结构的指针; dwMessage是被传递的消息,能够是下面消息之中的一个:

              NIM_ADD             添加图标

              NIM_DELETE          删除图标

              NIM_MODIFY          改动图标

 

 

—- 为使应用程序退出时图标消失,映射WM_DESTROY消息,在OnDestroy()函数中增加:

       ::Shell_NotifyIcon(NIM_DELETE,&m_tnid);

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/155045.html原文链接:https://javaforall.net

(0)
上一篇 2022年7月3日 下午10:46
下一篇 2022年7月3日 下午10:46


相关推荐

  • java多线程—Thread、Runnable和Callable区别

    多线程编程优点进程之间不能共享内存,但线程之间共享内存非常容易。系统创建线程所分配的资源相对创建进程而言,代价非常小。Java中实现多线程有3种方法:继承Thread类实现Runnable接口实现Callable接口(参考<Java编程思想(第4版)> 21.2.4章节,原来一直以为是2种,后来发现是3种)回到顶部第一种实现方法—继承Thread类继承Thread类,需要覆盖方法r…

    2022年4月7日
    56
  • JAVA操作FTP(FTP工具类)

    JAVA操作FTP(FTP工具类)JAVAFTP操作导入commons-net<dependency><groupId>commons-net</groupId><artifactId>commons-net</artifactId><version>3.6</version></dependency>packagecom.my.ftp.test;importjava.io.File;imp

    2022年6月9日
    50
  • linux命令dstat,dstat命令

    linux命令dstat,dstat命令dstat 命令是一个用来替换 vmstat iostat netstat nfsstat 和 ifstat 这些命令的工具 是一个全能系统信息统计工具 与 sysstat 相比 dstat 拥有一个彩色的界面 在手动观察性能状况时 数据比较显眼容易观察 而且 dstat 支持即时刷新 譬如输入 dstat3 即每三秒收集一次 但最新的数据都会每秒刷新显示 和 sysstat 相同的是 dstat 也可以收集指定的性能资源

    2026年3月17日
    2
  • python中shuffle是什么意思_python中shuffle()方法的功能详解

    python中shuffle是什么意思_python中shuffle()方法的功能详解python 的概率分布中 洗牌算法是通过 shuffle 方法实现的 shuffle 方法将列表的所有元素打乱 随机排列 Python 既可以使用 random shuffle 对列表进行洗牌 也可以使用 random shuffle 随机播放字符串列表 本文向大家介绍 python 中 shuffle 方法的功能详解 一 shuffle 方法是打乱序列里面的元素 并随机排列的 1 shuffle 方法使

    2026年3月17日
    3
  • ACdream 1427 Nice Sequence

    ACdream 1427 Nice Sequence

    2022年1月7日
    62
  • 以交互方式安装ESXi 6.0

    以交互方式安装ESXi 6.0

    2021年9月7日
    65

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号