我们应用托盘要用到api函数shell_notifyicon,其中有两个参数,第一个为
nim_add,nim_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方法啦,最小化消息也不例外,则我们可以在里面截获这个消息,并做一些操作: