//创建始终浮在所有窗口的最上面的窗口
protected
procedure CreateParams(var Params: TCreateParams); override;
private
{ Private declarations }
procedure WMNCHITTEST(var Message:TMessage);Message WM_NCHITTEST;
//.......{$R *.DFM}
procedure TForm1.WMNCHITTEST(var Message:TMessage);
begin
inherited;
if Message.Result = htClient then
Message.Result := htCaption;
end;
procedure TForm1.CreateParams(var Params: TCreateParams);
begin
inherited;
Params.Style := WS_POPUP or WS_DLGFRAME;
Params.ExStyle := WS_EX_PALETTEWINDOW;
end;
//至于拖放处理,去下载个控件,http://vcl.vclxx.com/DELPHI/D32FREE/DRAGDROP.EXE,
protected
procedure CreateParams(var Params: TCreateParams); override;
private
{ Private declarations }
procedure WMNCHITTEST(var Message:TMessage);Message WM_NCHITTEST;
//.......{$R *.DFM}
procedure TForm1.WMNCHITTEST(var Message:TMessage);
begin
inherited;
if Message.Result = htClient then
Message.Result := htCaption;
end;
procedure TForm1.CreateParams(var Params: TCreateParams);
begin
inherited;
Params.Style := WS_POPUP or WS_DLGFRAME;
Params.ExStyle := WS_EX_PALETTEWINDOW;
end;
//至于拖放处理,去下载个控件,http://vcl.vclxx.com/DELPHI/D32FREE/DRAGDROP.EXE,
setwindowpos(form1.Handle,HWND_TOPMOST,0,0,0,0,SWP_NOMOVE or SWP_NOSIZE)
取消:
setwindowpos(form1.Handle,HWND_NOTOPMOST,0,0,0,0,SWP_NOMOVE or SWP_NOSIZE)
Public
procedure Createparams(Var Params:TCreateParams);override;
...procedure TFormDrop.Createparams(var Params:TCreateParams);
begin
Inherited CreateParams(Params);
With Params do
begin
EXStyle:=ExStyle or WS_EX_TOPMOST OR WS_EX_ACCEPTFILES or WS_DLGFRAME
wndParnet:=GetDesktopWindow; //关键一行,用SetParent都不行!!
end;
end;
如果要移动窗体,可参照以上的办法,处理WM_NCHITTEST消息。