》》难点是如何让拖放窗口始终浮在顶层,而不管主窗口的位置,就象不相关的两个窗口
主窗口如果最小化,子窗口会同时最小化。也即被隐藏。
解决办法是结合以下几个步骤:
1,新的子窗口需要设置父窗口为DESKTOP:
.....
.....
public
{ Public declarations }
procedure CreateParams(var Params:TCreateParams);override;
.....
.....
procedure TForm2.CreateParams(var Params: TCreateParams);
begin
inherited CreateParams(Params);
Params.WndParent:=getdesktopwindow;//***
end;
2,子窗口的FromStyle是fsStayOnTop
3,在子窗口的ONSHOW事件里:
ShowWindow(Application.Handle, SW_HIDE);
这样,主窗口在任务栏的按钮即隐藏,而只保留子窗口的任务栏按钮.
4.在子窗口关闭时:
ShowWindow(Application.Handle, SW_SHOW);
恢复主窗口的任务栏按钮.