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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • pycharm安装CV2,tensorflow[通俗易懂]

    pycharm安装CV2,tensorflow[通俗易懂]在pycharm中导入importcv2时不能正常使用,需要安装cv2库,但是我们在pycharm中安装库时没有找到CV2,就需要安装opencv库,我采用的是以下的方式:1、首先看下pycharm中的环境,我现在用的环境是anaconda下的PyCharmproject2、在菜单栏中打开anacondaprompt(anaconda3)3、刚开始进入时环境是4、切换环境为pycharm中环境activatePyCharmproject5、已经下好了opencv的whl文件,我下到了3

    2022年8月26日
    10
  • C++使用curl发送post请求

    C++使用curl发送post请求发送post请求代码如下:#include<iostream>#include<string>#include<curl\curl.h>usingnamespacestd;//get请求和post请求数据响应函数size_treq_reply(void*ptr,size_tsize,size_tnmemb,void*stream)…

    2022年7月27日
    5
  • PyCharm+SVN「建议收藏」

    PyCharm+SVN「建议收藏」首先电脑安装svn,并且确svn/bin下面有svn.exe文件没有bin/svn.exe解决方法:重新打开TortoiseSVN安装文件-Modify-Next后在commandlineclienttools选项修改为Willbeinstalledonlocalharddrive,等待安装完成,SVN目录会出现svn.exe文件如果以上解决…

    2022年8月29日
    4
  • 阿里云服务器开放端口如何设置_阿里云服务器8888端口

    阿里云服务器开放端口如何设置_阿里云服务器8888端口阿里云服务器开放端口阿里云服务器默认是只开放了部分端口,我们部署自己的服务需要监听一下80,8080等端口时,就需要自己设置安全策略,本文介绍如何设置阿里云的安全组,开放需要的端口步骤点击阿里云的的控制台点击进入云服务器点击进入安全组菜单,点击创建安全组按钮,添加一个新的安全组2.进入创建新安全组页面填写一下必要的信息,然后配置访问规则,包括入站和出站,点击手动添加一条,设置开放所有的端口,包括端口和授权对象,点击创建安全组按钮,将创建一条新的安全组出站我们也可以配置,默

    2022年10月3日
    2
  • VUE作用域插槽详解(<slot>、v-slot、slot-scope)「建议收藏」

    什么是插槽?插槽就是子组件中的提供给父组件使用的一个占位符,用表示,父组件可以在这个占位符中填充任何模板代码,如HTML、组件等,填充的内容会替换子组件的标签。插槽显不显示、怎样显示是由父组件来控制的,而插槽在哪里显示就由子组件来进行控制如下代码:在子组件中放一个占位符在父组件中给这个占位符填充内容:展示的效果:现在来看看,如果子组件中没有放插槽,同样的父组件中在子组件中填充内容,会是啥样的:子组件代码无插槽:2.父组件照常填充内容:3.展示的效果:总结:如果

    2022年4月13日
    53
  • [ Laravel 5.6 文档 ] 安全系列 —— 重置密码

    [ Laravel 5.6 文档 ] 安全系列 —— 重置密码

    2021年10月24日
    35

发表回复

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

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