这个问题我已回答过我次,好像应该这样做:
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消息。
hehe, 直接设置为“总在最前”不就行了?
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)