可以的procedure TForm2.FormCreate(Sender: TObject); begin SetWindowLong(self.Handle,GWL_EXSTYLE,GetWindowLong(self.Handle,GWL_EXSTYLE) or WS_EX_APPWINDOW); end;
这个其实是Delphi的一个毛病。 真的不知道VCL要设计一个Applicaton放在任务栏上面。也不知道为什么要ShowModal时要把所有的窗口设为不可用。可以通过这样上面的办法来实现,也可以通过下面: 在Form类中: procedure CreateParams(var Params: TCreateParams); override; ... procedure TfrmASMain.CreateParams(var Params: TCreateParams); begin inherited CreateParams(Params); with Params do begin WndParent := GetDesktopWindow(); end; end; 不过建议不要在任务栏中出按钮出来,不然,以后麻烦事会很多,比如有窗体ShowMadal以后
begin
SetWindowLong(self.Handle,GWL_EXSTYLE,GetWindowLong(self.Handle,GWL_EXSTYLE) or WS_EX_APPWINDOW);
end;
真的不知道VCL要设计一个Applicaton放在任务栏上面。也不知道为什么要ShowModal时要把所有的窗口设为不可用。可以通过这样上面的办法来实现,也可以通过下面:
在Form类中:
procedure CreateParams(var Params: TCreateParams); override;
...
procedure TfrmASMain.CreateParams(var Params: TCreateParams);
begin
inherited CreateParams(Params);
with Params do
begin
WndParent := GetDesktopWindow();
end;
end;
不过建议不要在任务栏中出按钮出来,不然,以后麻烦事会很多,比如有窗体ShowMadal以后
因为的我要判断这个窗体的状态是最小化,还是不激活状态,SetForegroundWindow(handle)不能显示最小化窗体,而ShowWindow我必须先知道窗体的状态,高手发言,谢谢了!
SetForegroundWindow(Handle);