把窗口放在最上面是可以实现的,比如QQ,flashget等,总是在最上面的 --------------------------------------------------------------okey, if you run them at the same time, please tell me which one is on top?
用API函数SETWINDOWPOS SetWindowPos(Handle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE);
盖整个屏幕;BorderStyle 属性设为 bsNone,使窗体无边框、标题;
FormStyle 属性设为 fsStayOnTop,使窗体总是保持在屏幕最上面。
虽然程序中可以用FormStyle 属性设为 fsStayOnTop将窗体值于前端,但是总能有另外的程序会抢占“第一”的位置。假使照你的方法罢,那是不是也少一项:让该窗体鼠标点击无效?假设首先,我用Delphi创建一窗体并且实现了“让窗体永置于任何窗口之上”,第二步,我再创建同样一个窗体,那么到底哪一个窗体永置于其他窗口之上呢??我是初学者,接触Delphi15天,我感觉,“让窗体用置于任何窗口之上”,这句话本身就是错的。如果我错了,希望各位老大指点。
or use API function!
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;type
TForm1 = class(TForm)
Button1: TButton;
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);
var temp:integer;
begin
systemparametersinfo(spi_screensaverrunning,1,@temp,0);
//限制功能键
formstyle:=fsstayontop;
windowstate:=wsmaximized;
end;procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
var temp:integer;
begin
systemparametersinfo(spi_screensaverrunning,0,@temp,0);//取消对功能键的限制
end;procedure TForm1.Button1Click(Sender: TObject);
begin
close;
end;end.
你让我恶心,不知道是你的哪能句话引起我不舒服。哦,可能是你的名字吧,我最讨厌你这种人,你是生于80年代的吧?
如果想不被其他调用这个函数的窗体遮住,那就每隔一段时间执行一次
SetWindowPos(Handle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE);
SetWindowPos(Handle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE);
把窗口放在最上面是可以实现的,比如QQ,flashget等,总是在最上面的
--------------------------------------------------------------okey, if you run them at the same time, please tell me which one is on top?
SetWindowPos(Handle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE);
如果你要一直都在最前的话,最好用个timer,每隔一段事件就执行下一次下面的代码
SetWindowPos(Handle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE);