组件制作之五(托盘组件)[3]

[入库:2005年8月18日] [更新:2007年3月24日]

本文简介:选择自 linzhengqun 的 blog

我们应用托盘要用到api函数shell_notifyicon,其中有两个参数,第一个为

nim_addnim_delete  nim_modify中的一个,分别表示添加托盘(图标出现)

修改托盘(比如图标,提示),删除(图标消失)第二个参数是notifyicondata的指针

嗯,托盘应该差不多了。

 

这个组件能够决定主窗体最小化时,是否是正常最小化并没有托盘图标。还是最小化到屏幕之外,使我们看不见,且托盘区出现了图标。这里有一个成员为factive来决定。

那么我们是怎么样影响到主窗体呢,也即怎么截获窗体的最小化消息呢。

全局变量application有一个方法为procedure hookmainwindow(hook: twindowhook);

顾名思义,就是钩到主窗口的所有消息。里面的参数是twindowhook类型,它是一个方法指针,定义如下:

type twindowhook = function(var message: tmessage): boolean of object;

我们要自己定义过程的,然后传给hookmainwindow

function appmsghook(var msg:tmessage):boolean;

application.hookmainwindow(appmsghook);

这样做之后,主窗口的所有消息都会经过appmsghook方法啦,最小化消息也不例外,则我们可以在里面截获这个消息,并做一些操作:

 

本文关键:组件制作之五(托盘组件)
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top