首页  编辑  

Win2000的Modal窗体的一个问题

Tags: /超级猛料/VCL/Form,窗体/模态窗体/   Date Created:

下面的是Kingron原创的哦,在Windows 2000 Advance Server + D5下通过

一个技术型的问题:

我们知道,使用Windows2000的时候,如果是Windows2000本身的对话框,

显示一个模态的窗口的时候,如果这个时候单击调用模态窗口的窗口,

那么这个模态窗口会闪动标题栏来提示用户!这是一个很好的功能,

不知道用Delphi怎么做?我写了好几个测试程序,但是都找不着门路。

也许用纯API创建可以,但是不用纯API有没有办法做到呢?要方法简单哦。

解决方法如下:

1:要么修改Forms.pas,设立一个全局变量,并且采用动态创建窗体的方法,这样可以随时改变Form的Owner窗体。

2:普通的方法:

假设有两个窗体:

form1,form2,form2为Modal窗体,由form1来调用,那么修改form2的pas单元如下:

TForm2=class(TForm)

....

procedure CreateParams(var Para:TCreateParams);override;

...

end;

....

procedure TForm2.CreateParams(var Para:TCreateParams);

begin

 inherited CreateParams(Para);

 Para.WndParent:=GetActiveWindow;

end;

这样,就会有那种闪动标题栏的效果了。

现在有一个更好的方法:

创建一个窗体,然后写上上面的代码,以后的窗体,都从这个窗体继承即可。