var Rect: TRect; procedure TForm1.FormCreate(Sender: TObject); begin SystemParametersInfo(SPI_GETWORKAREA, 0, @Rect, 0); Rect.Top := 100; SystemParametersInfo(SPI_SETWORKAREA, 0, @Rect, 0); Left := 0; Top := 0; Height := 100; Width := Screen.Width; FormStyle := fsStayOnTop; end;procedure TForm1.FormDestroy(Sender: TObject); begin Rect.Top := 0; SystemParametersInfo(SPI_SETWORKAREA, 0, @Rect, 0); end;
重载Createparams,改变窗体风格,设置父句柄为桌面,代码大概如下:private procedure Createparams(var params: TCreateParams);override; procedure TForm1.Createparams(var params: TCreateParams); begin inherited CreateParams(Params); with params do begin Style:=WS_POPUP; ExStyle := WS_EX_TOOLWINDOW or WS_EX_TOPMOST or WS_EX_NOACTIVATE or WS_EX_WINDOWEDGE; WndParent := GetWindow(FindWindow('Progman', nil), GW_CHILD); end; end;
Rect: TRect;
procedure TForm1.FormCreate(Sender: TObject);
begin
SystemParametersInfo(SPI_GETWORKAREA, 0, @Rect, 0);
Rect.Top := 100;
SystemParametersInfo(SPI_SETWORKAREA, 0, @Rect, 0);
Left := 0;
Top := 0;
Height := 100;
Width := Screen.Width;
FormStyle := fsStayOnTop;
end;procedure TForm1.FormDestroy(Sender: TObject);
begin
Rect.Top := 0;
SystemParametersInfo(SPI_SETWORKAREA, 0, @Rect, 0);
end;
procedure Createparams(var params: TCreateParams);override;
procedure TForm1.Createparams(var params: TCreateParams);
begin
inherited CreateParams(Params);
with params do
begin
Style:=WS_POPUP;
ExStyle := WS_EX_TOOLWINDOW or WS_EX_TOPMOST or WS_EX_NOACTIVATE or WS_EX_WINDOWEDGE;
WndParent := GetWindow(FindWindow('Progman', nil), GW_CHILD);
end;
end;