如何使form1以外的其他非主窗口TopMost(150分)

  • 主题发起人 主题发起人 ddt
  • 开始时间 开始时间
D

ddt

Unregistered / Unconfirmed
GUEST, unregistred user!
有三个Form,其中form1是主窗口.其它两个是form2、form3。问题如下:
在三个form中均使用SetWindowPos或SetForegroundWindow或formstyle(fsStayOnTop)可使form1始终在前,但在form1中用showmodal方法显示form2、form3时有时可始终在前有时不行(绝大多数时间行不通)。如果随便打开一个其他窗口如messagebox(...),则form2、form3就永远不能topmost了。
据我所知NetVampire就是用Delphi写的,它的小窗口是如何topmost而不受任何影响的。另问还有什么更高级的方法能实现topmost。
 
设置Form2为fsStayOnTop,并设置BorderStyle为bsToolWindow.

TForm2=class(TForm)
{..}
protected
procedure CreateParams(var Params: TCreateParams);override;
{..}
end;

procedure TForm2.CreateParams(var Params: TCreateParams);
begin
inherited;
with Params do WndParent:=0;
end;
 
前卫兄,版权所有,怎么抄了我的?不是欺负我上不了网吧?
 
Pipi.兄:
学了就要用嘛,呵呵。。。
 
150分啊,哼哼哼
 
让ddt这位兄弟多给你点分就行了嘛。
 
我全明白了,还有我这上来可真是慢。
 
Pipi.兄:
他把分全给我了,我很抱歉,因为这些是从你那里学来的。以后有机会还礼。 {B-)
 
!据我看这里的“并设置BorderStyle为bsToolWindow”与是否前置没关系对吧
 
后退
顶部