请问如何做到程序自己触发了一个动作,然后在windows的任务栏状态区附近出现提示?(20分)

  • 主题发起人 主题发起人 zhbruce
  • 开始时间 开始时间
Z

zhbruce

Unregistered / Unconfirmed
GUEST, unregistred user!
类似QICQ的功能:在OICQ里有一个功能是,当有好友上线的时候,就会在
任务栏状态区附近(也是QQ附近)自动弹出提示。。。
请问这个提示如何做到。
一般的程序要MOUSE移到图标上先出现提示。。
请问这个提示如何做到。
thank


 
qq是通过改变systray的图标来实现的,其实就是一个函数:Shell_NotifyIcon(),
它有2个参数,第一个是进行的操作:有3个可取值:NIM_ADD,NIM_DELETE,NIM_MODIFY;
第2个是一个TNotifyIconData类型的结构,具体各个成员我就不列出来了,你可以在delphi
帮助中的sdk中找到,qq图标的闪烁是定时用NIM_MODIFY参数来更改图标,于是就有闪烁的
效果了,你试一下,不难的!
关于tray的问题,论坛上有很多,你何不先搜索一次呢?
 
以下这段程序是在托盘区每隔一段时间改变一次图标.我的主页有完整的代码下载.
http://www.aidelphi.com

procedure TFormMain.Timer1Timer(Sender: TObject);
begin
if Index=0 then
begin
Application.Icon.Handle:=LoadIcon(HInstance,'NEXT');
Index:=1;
end else
begin
Application.Icon.Handle := LoadIcon(HInstance,'MAINICON');
Index:=0;
end;
Icon.Assign(Application.Icon);
with FpNotify^ do
begin
Wnd := Handle;
uID := 0;
uFlags := NIF_ICON + NIF_MESSAGE + NIF_TIP;
hIcon := Application.Icon.Handle;
uCallbackMessage := CM_nTaskIcoMsg;
StrPCopy(szTip,Tips);
end;
Shell_NotifyIcon(NIM_MODIFY, FpNotify);
end;
 
谢谢两位..
但是两位一直不明白我的意思.
我不是做托盘程序,亦不是要任务栏状态区的图标会闪动..
 
zhbruce:

先问,你的windows的任务栏状态区是指哪个区????
 
任务栏状态区就是时间和输入法那个区。。
玩过QQ的好友自动上线提示吗??
例如。我QQ在线,你后来上QQ。我的任务栏状态区上小小的地方就会出现一个提示是
长方形很小的提示,提示“HeyTommy上线”。
你可以在QQ的好友个人设置设定。上网自动提示就看到一个实例啦。
 
后退
顶部