建两个窗体Frm1和Frm2,让Frm1永远在Frm2的上面,包括对Frm2进行操作的时侯。(60分)

  • 主题发起人 主题发起人 小小鸟!!!
  • 开始时间 开始时间

小小鸟!!!

Unregistered / Unconfirmed
GUEST, unregistred user!
哪位大侠能告诉我一个小问题
我想建两个窗体Frm1和Frm2,让Frm1永远在Frm2的上面,包括对Frm2进行操作的时侯。
 
打开StayOnTop属性
 
设置fromstyle的属性为fsStayOnTop
 
让Frm1 的 FormStyle 设成 fsStayOnTop
:P
 
除了让Frm1 的 FormStyle 设成 fsStayOnTop 之外,还要保证Frm2的FormStyle 不能设成 fsStayOnTop
 
StayOnTop属性 在哪呀???
 
在frm1中拦截一个信息
private
{ Private declarations }
public
{ Public declarations }
procedure Createparams(var Params: TCreateParams);
override;
//在最前面
end;

procedure TForm1.Createparams(var Params: TCreateParams);
begin
inherited CreateParams(Params);
with Paramsdo
begin
EXStyle := ExStyle or WS_EX_TOPMOST or WS_EX_ACCEPTFILES ;
//or WS_DLGFRAME
wndParent := GetDesktopWindow;
//关键一行,用SetParent都不行!!
end;
end;
 

windows.setparent(Frm1.handle,frm2.handle);
在里面,不是在上面,要不?
 
TForm1 = Class(TForm)
public
procedure Createparams(var Params: TCreateParams);
override;
end;

procedure TForm1.CreateParams(var Params: TCreateParams);
begin
inherited CreateParams(Params);
Params.wndParent := Form2.Handle;//FORM1永远在FORM2上
end;
 
多人接受答案了。
 
后退
顶部