如何使子窗体保持在前台(60分)

  • 主题发起人 主题发起人 W1979
  • 开始时间 开始时间
W

W1979

Unregistered / Unconfirmed
GUEST, unregistred user!
使子窗体保持在前台,在子窗体关闭前,又不能中断后台主窗体
的运行。
请问如何解决?
 
AlwaysOnTop
 
type
TForm2 = class(TForm)
protected
procedure CreateParams( var Params: TCreateParams );override;
//...
end;

implementation
uses Unit1;

procedure TForm2.CreateParams( var Params: TCreateParams );
begin
inherited CreateParams( Params );
with Paramsdo
begin
Style := Style or ws_Overlapped;
WndParent := Form1.Handle;

end;
end;
 
将form的FormStyle属性设置为fsStayOnTop即可
 
试了下,ArtX的方法正好满足我的需要
to 温柔一刀:AlwaysOnTop 是什么?
to FuDei: 看不太懂, 可否解释一下你的代码?
 
就是使子窗体Form2保持在Form1之上,但不是在最上前面,
fsStayOnTop是使窗体在应用程序窗体的最前面,当然用那个要看编程要求。
 
使用api函数setwindowpos
 
W1979: alwaysontop就是fsstayontop,一随手就成这样了 :-)
 
我看了setwindowpos的帮助,上面说这个函数可以设置窗体的'Z order',
这个'Z order'是什么意思?
 
Z order就是z轴的顺序,屏幕上有x,y轴,而前后就叫做z轴了
 
多人接受答案了。
 
后退
顶部