用Delphi实现程序永远置顶
置顶是SetWindowPos(form1.handle,-1,0,0,0,0,SWP_NOSIZE),当按windows+D时它仍会消失。一位朋友说是系统发送了最小化消...
置顶是SetWindowPos(form1.handle, -1, 0, 0, 0, 0, SWP_NOSIZE),当按windows+D时它仍会消失。一位朋友说是系统发送了最小化消息,所以去掉最大化和最小化就行了,我用VB试了(直接去取最大化最小化按钮)可以,但不知delphi怎么弄?实现按windows+D也不最小化,我对delphi还不太了解
展开
4个回答
展开全部
貌似可以把Form的
formstyle属性设为StayOnTop,
把Form的ParantForm(ParantWindow我记不太清楚了是那个了,本机没装DELPHI)设为桌面。其句柄为
GetDC(0)
ParantForm:=GetDC(0);
不值得我记得准不准,你可以试下。
formstyle属性设为StayOnTop,
把Form的ParantForm(ParantWindow我记不太清楚了是那个了,本机没装DELPHI)设为桌面。其句柄为
GetDC(0)
ParantForm:=GetDC(0);
不值得我记得准不准,你可以试下。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
procedure TForm1.Button1Click(Sender: TObject);
var
wnd : THandle;
begin
Form1.FormStyle := fsStayonTop;
wnd := FindWindow(nil,'Project1');
SHowWIndow(wnd,SW_HIDE);
end;
望采纳..
var
wnd : THandle;
begin
Form1.FormStyle := fsStayonTop;
wnd := FindWindow(nil,'Project1');
SHowWIndow(wnd,SW_HIDE);
end;
望采纳..
参考资料: 大仙
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
自己创建个消息过程吧,不过,这样做,相当于屏蔽掉了窗口最小化。也就是说,这样做不仅仅是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旗舰版 测试通过。
在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旗舰版 测试通过。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询