首页  编辑  

两个程序互相掉应如何把一个程序的窗体设置为另外一个程序的OnTop

Tags: /超级猛料/VCL/Form,窗体/疑难杂症/   Date Created:

有两个程序A和B,A调用B,B的窗口始终在A的前面,但是不是在所有程序的最上面?

首先需要修改A程序,在调用B之前,传递A窗口句柄为参数给B或者在B中使用FindWindow也可以。

然后重载B窗体的CreateParams,类似下面:

procedure TFormB.CreateParams(var P: TCreateParams);

begin

 inherited;

 P.WndParent := FindWindow('TFormA','FormA');

 //P.WndParent := StrToInt(ParamStr(1));

 P.ExStyle := P.ExStyle or WS_EX_TOOLWINDOW;

end;