如何制作象Foxmail和msn有新邮件的提示窗口(200分)

  • 主题发起人 主题发起人 JamesDF
  • 开始时间 开始时间
J

JamesDF

Unregistered / Unconfirmed
GUEST, unregistred user!
Foxmail和MSN当收到新邮件时,有一个窗口从任务栏的最右边缓缓升起,鼠标点击后有缓缓降下,想知道是如何实现的,用定时的方法好像不能够达到那样的效果。
 
首先,高精度的定时肯定是可以的。
你也可以循环
var
i: Integer;

for i := 0 to 99 do
begin
Top := Screen.Height - Height div 100;
sleep(10);
Application.ProcessMessages;
end;
 
animatewindow
能实现你要的效果,具体如何使用请查看<<win32 api参考大全>>
 
我做了一個,大家看看,提提意見.
procedure TForm1.FormCreate(Sender: TObject);
begin
form1.left:=Screen.Width-form1.width;
form1.top:=screen.height-form1.height;
AnimateWindow(Self.Handle, 1250, AW_VER_NEGATIVE or AW_ACTIVATE);
end;

procedure TForm1.FormClick(Sender: TObject);
begin
with form1 do begin
while height>0 do begin
top:=top+5;
height:=height-5;
end;
end;
close;
end;
 
to sichuan:
这种做法还是有一点不足,就是窗体有一部分被任务栏给挡住了,有方法获取到任务栏的高度就好了
 
取得任務欄位置和高度的方法在這裡能查到。我貼一段
取得任務欄高度的代碼(抄別人的):
uses ShellAPI;
procedure getTaskHeight;
var
abd:TAppBarData;
aHeight:integer; //任務欄的高度
begin
abd.cbSize:=sizeof(abd);
SHAppBarMessage(ABM_GETTASKBARPOS,abd);
aHeight:=abd.rc.Bottom-abd.rc.Top;
end;
 
后退
顶部