//农机调度项目代码


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);

NOTIFYICONDATA结构的更多相关文章

  1. 【VS开发】最小化到托盘 shell_notifyicon和NOTIFYICONDATA

    shell_notifyicon和NOTIFYICONDATA Shell_NotifyIcon函数,向任务栏的状态栏发送一个消息 函数原型 BOOL Shell_NotifIcon( DWORD d ...

  2. 为windows应用程序提供托盘图标

    1>包含头文件 #include "Shellapi.h"   2>相关结构体和函数:     NOTIFYICONDATA     WINSHELLAPI BOOL ...

  3. Windows 托盘区域显示图标

    NOTIFYICONDATA structure 这个结构体包含了向通知区域(底部任务栏右下角区域,下面都称为托盘)显示的信息.需要使用函数Shell_NotifyIcon. 结构体成员 typede ...

  4. Win7以上 32/64位系统隐藏托盘图标

    前两天有朋友找我,让帮忙写个小工具,隐藏windows的托盘图标,想想最近在家也不想做太复杂的事,也好几年没写过windows上的小工具了,就答应了.想来挺简单的事,没想到还是有点小插曲的.特地来博客 ...

  5. VC单文档对话框添加托盘图标

    一 单文档添加托盘 1. 在CMainFrame中定义NOTIFYICONDATA结构m_notify 2.在OnCreate中添加托盘初始化代码 int CMainFrame::OnCreate(L ...

  6. 托盘图标、气泡以及任务栏崩溃后的自动添加——Shell_NotifyIcon

    托盘图标使用函数 Shell_NotifyIcon 创建.修改和删除,参数主要使用 NOTIFYICONDATA 结构. 任务栏启动时会给所有顶层窗口发送 TaskbarCreated 消息,由于不同 ...

  7. [转]Windows Shell 编程 第九章 【来源:http://blog.csdn.net/wangqiulin123456/article/details/7987969】

    第九章 图标与Windows任务条 如果问一个非程序人员Windows最好的特色是什么,得到的答案应该是系统最有吸引力的图标.无论是Windows98现在支持的通用串行总线(USB)还是WDM(看上去 ...

  8. [转载]提升进程权限-OpenProcessToken等函数的用法

    GetCurrentProcessID 得到当前进程的ID OpenProcessToken 得到进程的令牌句柄LookupPrivilegeValue 查询进程的权限 AdjustTokenPriv ...

  9. VC实现将对话框最小化到系统托盘

    1.minisysDlg.h头文件设置: 1)public: void setTray();//设置托盘    NOTIFYICONDATA nid;//NOTIFYICONDATA结构包含了系统用来 ...

随机推荐

  1. [Javascript] Safe Nested Object Inspection

    A common problem when dealing with some kinds of data is that not every object has the same nested s ...

  2. Jquery-uploadify多文件上传插件使用介绍

    Jquery-uploadify多文件上传插件使用起来非常的给力,在此记录一下使用方法. query-uploadify插件的属性设置 <script src="JS/jquery.m ...

  3. C#。5 函数 类

    函数:能够独立完成某个功能的模块.          好处:1.结构更清析(编写.维护方便 ).2.代码重用.3.分工开发.          四要素:名称,输入(参数),输出(返回的类型),加工(函 ...

  4. NHibernate之映射文件配置说明(转载3)

    十二.组件(component), 动态组件(dynamic-component) <component>元素把子对象的一些元素与父类对应的表的一些字段映射起来. 然后组件可以定义它们自己 ...

  5. 64位系统 IIS不支持 Excel导入的问题

    64位系统不支持读取excel的问题: 应用程序池-常规选项 启用32应用程序 启用23应用程序是为了保证32应用程序能够正常运行

  6. Linux 开机报 or type Control-D to continue

    解决步骤: 1.输入root密码 2.看是哪个盘报的错,我这边是sda3(可能会是不同的盘),就是代码中标为FAIL 输入以下命令fsck -y /dev/sda3

  7. (原)anaconda 的安装与在pycharm中的版本切换

    参考网页: http://continuum.io/blog/anaconda-python-3 http://conda.pydata.org/docs/intro.html#creating-py ...

  8. HDU 2896 病毒侵袭 (AC自动机)

    这题模板题.............但是竟然要去重........调试了半天才发现.................... #include <cstdio> #include <i ...

  9. Go语言之defer

    defer语句被用于预定对一个函数的调用.我们把这类被defer语句调用的函数称为延迟函数.注意,defer语句只能出现在函数或方法的内部. 一条defer语句总是以关键字defer开始.在defer ...

  10. HTML&CSS基础学习笔记1.12—引入样式表

    引入样式表 我么都知道HTML是网页内容的载体,CSS样式是表现,就像网页的外衣.如何让网页披上这层外衣呢? 这个时候就需要用<link>标签了,它起到将CSS样式链入页面的作用. < ...