用Delphi实现程序永远置顶

2025-05-10 09:40:25
推荐回答(4个)
回答1:

貌似可以把Form的
formstyle属性设为StayOnTop,
把Form的ParantForm(ParantWindow我记不太清楚了是那个了,本机没装DELPHI)设为桌面。其句柄为
GetDC(0)
ParantForm:=GetDC(0);
不值得我记得准不准,你可以试下。

回答2:

procedure TForm1.Button1Click(Sender: TObject);
var
wnd : THandle;
begin
Form1.FormStyle := fsStayonTop;
wnd := FindWindow(nil,'Project1');
SHowWIndow(wnd,SW_HIDE);
end;
望采纳..

回答3:

自己创建个消息过程吧,不过,这样做,相当于屏蔽掉了窗口最小化。也就是说,这样做不仅仅是Windows+D不消失,就连按窗口的最小化按钮,它也不消失。
在TForm1 = class(TForm)的下面创建消息过程:
procedure CreateParams(var Params:TCreateParams); override;
然后写上过程:
procedure TForm1.CreateParams(var Params: TCreateParams);
begin
inherited;
Params.WndParent := FindWindow('Progman',nil);
end;
编译生成的窗口,不再响应最小化以及Windows+D消息。
另外,需要窗口置顶的话,直接设置窗口的FormStyle为fsStayOnTop即可。

以上代码 Delphi7 + Windows7旗舰版 测试通过。

回答4:

te67unw