Win2000的Modal窗体的一个问题

  • 主题发起人 主题发起人 import
  • 开始时间 开始时间
I

import

Unregistered / Unconfirmed
GUEST, unregistred user!
下面的是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;
这样,就会有那种闪动标题栏的效果了。
现在有一个更好的方法:
创建一个窗体,然后写上上面的代码,以后的窗体,都从这个窗体继承即可。
 
后退
顶部