窗体置顶问题
主窗体已经可以实现置顶功能,但是一弹出子窗体,置顶的功能就消失了...请问如何解决???
用的是 SetWindowPos(main.handle, HWND_TOPMOST, main.Left, main.Top, main.Width, main.Height,0);
[解决办法]
Show可以,ShowModal不可以
原因可以看ShowModal的源码
下面这样就可以使子窗体永远在主窗体之上,可以控制主窗体的Enabled属性模拟ShowModal;
//子窗体
TForm2 = class(TForm)
protected
procedure CreateParams(var Params: TCreateParams); override;
end;
procedure TForm2.CreateParams(var Params: TCreateParams);
begin
inherited;
if Owner is TWinControl then
Params.WndParent := TWinControl(Owner).Handle;
end;
//主窗体
procedure TForm1.Button1Click(Sender: TObject);
begin
TForm2.Create(self).Show;
end;