用C Builder编写Tray程序

文章作者 100test 发表时间 2007:03:10 16:55:50
来源 100Test.Com百考试题网


Tray(托盘)是Windows9x任务条上的一个特殊区域,它的技术名称为“任务栏布告区”,一些软件(如金山词霸Ⅲ)运行时会在托盘上放置一个图标,使用户一眼就能知道这个程序正在后台运行,要想激活它也很容易,通常只需单击一下这个图标即可,非常方便。

  Tray的编程比较特殊,但并不难,主要包括图标、工具提示和消息等三个方面,它是Shell编程的一部分。ShellAPI提供了Shell—NotifyIcon函数,用它可以增加、删除或者修改托盘中的图标,在托盘上放置图标后,Windows Shell会负责把发生在图标上的鼠标事件通知应用程序。Shell—NotifyIcon函数定义如下:

  WINSHELLAPI BOOL WINAPI Shell—NotifyIcon(DWORD dwMessage,PNOTIFYICONDATA pnid).

  dwMessage表示要完成的操作:NIM—ADD(增加图标)、NIM—DELETE(删除图标)、NIM—MODIFY(修改图标或提示文本),pnid是一个指向NOTIFYICONDATA结构的指针,结构的定义如下:

  typedef struct —NOTIFYICONDATA{

  DWORD cbSize.//结构所占的字节数,必须用结构的大小来初始化。

  HWND hWnd.//接受Tray图标消息的窗口句柄

  UINT uID.//由应用程序定义的图标ID

  UINT uFlags.//用来鉴别那些需要改变其值的域,NIF_ICON表示hIcon有效,可用来修改图标,NIF_MESSAGE表示uCallbackMessage有效,用来定义消息,NIF—TIP表示szTip参数有效,可修改工具提示。

  UINT uCallbackMessage.//应用程序定义的消息

  HICON hIcon.//Tray图标的句柄

  char szTip[64].//工具提示的文本

  }NOTIFYICONDATA.

  下面我们就通过一个具体例子来说明实现方法,程序运行时不会显示主窗体,只在托盘上增加一个图标,双击图标可关闭程序。

  程序运行时托盘区显示如下:

  新建一个工程,放置一个Timer控件到窗体上。打开unit1.h文件,增加头文件说明#include ,在TForm1定义的private段增加一些数据成员和方法的声明:

  unsigned int iconmessage.//定义的消息

  void AddTrayIcon().//在托盘上增加图标

  void RemoveTrayIcon().//从托盘中删除图标


相关文章


二级C语言程序第3章顺序结构1
C 程序设计从零开始之何谓
C 箴言:声明是非成员函数时机
二级C语言程序设计的初步知识
用C Builder编写Tray程序
二级C语言第1章程序设计基本概念
在C++Builder中显示透明位图
全国计算机等级考试二级C语言之一维数组与指针1
全国计算机等级考试二级C语言之二维数组与指针2
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛