怎么实现让一个窗口振动起来? ( 积分: 30 )

  • 主题发起人 主题发起人 ChenXian
  • 开始时间 开始时间
C

ChenXian

Unregistered / Unconfirmed
GUEST, unregistred user!
怎么实现让一个窗口振动起来?
说的简单点,就是msn聊天窗口里的“闪屏振动”功能,这个是怎么实现的?

盼高手指点。。。。
 
怎么实现让一个窗口振动起来?
说的简单点,就是msn聊天窗口里的“闪屏振动”功能,这个是怎么实现的?

盼高手指点。。。。
 
不断的改变窗口的屏幕坐标就可以了
 
对,用个timer就可以了。
 
玩玩这个:

放个ApplicationEvents 按esc键停止
timer的Interval设为1

var
Form1: TForm1;
k:integer;

implementation

{$R *.dfm}

procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG;
var Handled: Boolean);
begin
if msg.message=WM_KEYDOWN then
if msg.wParam=vk_Escape then
Timer1.Enabled:=false;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
case k mod 4 of
0:
self.Left:=self.Left-2;
1:
self.Top:=self.Top-2;
2:
self.Left:=self.Left+2;
3:
self.Top:=self.Top+2;
end;
if k=3 then k:=0 else inc(k);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
timer1.Enabled:=true;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
k:=0;
end;

end.
 
窗体坐标随机小改动一下
 
msn应该不是这样的,因为我试过,当中文输入法界面显示在msn的聊天窗口上时,会随着聊天窗口一起振动
 
估计msn 是重画了整个窗口
 
这个。。。。怎么理解。。。

移动了窗体位置 也是重画窗口啊
 
應該是改變窗口的坐標。
 
好像是改变窗口的坐标
 
不管MSN是怎么实现的,只要我们实现自己的功能就行了;
改变窗体坐标是个不错的想法;
或者两个或几个窗体交替显示,也可以实现;
 
后退
顶部