兄弟们帮忙解释一下这个问题的成因(50分)

  • 主题发起人 主题发起人 liyinwei
  • 开始时间 开始时间
L

liyinwei

Unregistered / Unconfirmed
GUEST, unregistred user!
新建一个工程,然后只加入一行代码
代码:
procedure TForm1.FormShow(Sender: TObject);
begin
  AnimateWindow(Handle,1000,AW_BLEND);
end;
[code]
[Run]->然后在窗体将要出现的的时候,在窗体的右上角那3个按钮的地方猛摇几下鼠标,
就会得到下面的窗体。
其实也没什么问题,这三个不正常的按钮只要窗体获得焦点就会马上变回正常。
我只是好奇想要知道为什么会出现这种现象?
[img]http://www.delphibbs.com/keylife/images/u252554/123456.GIF[/img]
 
哎!原来图片贴不出来。
 
这个是该函数的原因,采用该函数做动画时,他只能对原始窗体进行操作,主题或者是皮肤都是“画上去的”不属于原始窗体的一部分,所以我们看到的动画效果是原始的窗体,就像win98的那些窗体,你可以自己设计动画效果函数,很简单,一个timer+改变form的长宽高坐标等就可以实现
 
因为调用完了这个API以后窗体并没有激活,所以没有调用重画
加一行代码
procedure TForm1.FormShow(Sender: TObject);
begin
AnimateWindow(Handle,500,AW_BLEND);
Self.SetFocus;
//加这一行
end;
就可以了
 
多人接受答案了。
 
后退
顶部