//农机调度项目代码


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. c++大作业--学籍管理系统--

    1.题目描写叙述 学籍管理系统: 依据信息管理系统的业务流程.要求以及所要实现的目标,完毕下面功能: (1)建立学生档案的管理和维护.实现计算机自己主动化管理体制. (2)建立学生成绩管理机制,在计算 ...

  2. ASP.NET静态页生成方法(模板替换)

    本文实例讲述了ASP.NET静态页生成方法的一种简单方法,就是替换内容法. 适用场景 模板比较固定,页面替换内容较少. 基本原理 此方法中静态页生成用到的就是匹配跟替换了,首先得读取模板页的html内 ...

  3. 新手们的GDI+绘制方格

    //绘制panel控件触发的事件 //不可在窗体加载时绘制方格        private void panel1_Paint(object sender, PaintEventArgs e)    ...

  4. 配置 VS 2015 开发跨平台手机应用

    为了使用 VS 2015 开发跨平台手机应用,VS 2015 装了很多次,遇到了很多坑,才终于弄明白怎样配置才能正常使用C#开发手机应用,现把步骤分享给大家,以免大家少走弯路. 运行环境: Windo ...

  5. (转)回车 执行button点击

    功能说明:当我们注册或者执行搜索时,输入内容后,不用单击按钮来执行按钮单击事件,而直接通过回车来执行按钮单击事件.只要在text框中onkeydown事件中加入执行按钮的onclick事件就OK了 代 ...

  6. Segment,Path,Ring和Polyline的区别

    这四者当中Segment是最小的单位,具体的构成路线可以分为两个条:Segment-Path-Ring(封闭的Path)Segment-Path-Polyline Segment 和 Path 可以说 ...

  7. C#多线程实践——锁和线程安全

    锁实现互斥的访问,用于确保在同一时刻只有一个线程可以进入特殊的代码片段,考虑下面的类: class ThreadUnsafe { static int val1, val2; static void ...

  8. C#double保留两位小数

    public static void Main(string[] args) { double db = Math.PI; db = Math.Round(db,); Console.WriteLin ...

  9. explicit 只对构造函数起作用,用来抑制隐式转换。

    class A { private: int a; public: A(int x) :a(x){} void display(){ cout << a << endl; } ...

  10. Java系列--第六篇 基于Maven的SSME之多国语言实现

    如果你的网站足够强大,以致冲出了国门,走向了国际的话,你就需要考虑做多国语言了,不过,未雨绸缪,向来是我辈程序人员的优秀品质,谁知道那天,我们的网站被国外大公司看中收购,从而飞上枝头变凤凰.不扯这么多 ...