这是我正在使用的代码:
BorderStyle := bsNone;
WindowState := wsMaximized;
我的问题是应用程序不会覆盖任务栏,而是支持任务栏。
在运行时切换到全屏时效果很好,但在系统启动时启动应用程序时无法正常工作。
更新
事实证明,这两条线路运作良好。它们位于FormShow事件处理程序中。如果我在FormShow结束时断点,应用程序似乎全屏;我可以通过任务栏看到该应用程序。但是在FormShow之后,应用程序的Top属性会以某种方式发生变化。我不会在代码中更改它 - 值为-20,因此应用程序不再最大化。
有没有办法追踪更改的位置或时间?
提前致谢!
更新
此帖已被标记。请不要发布任何答案!谢谢。
答案 0 :(得分:3)
根据此MSDN博客更改参数样式: http://blogs.msdn.com/b/oldnewthing/archive/2005/05/05/414910.aspx
procedure TForm1.CreateParams(var Params: TCreateParams);
begin
inherited;
Params.Style := WS_POPUP or WS_VISIBLE; //will overlay taskbar
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Self.WindowState := wsMaximized; //fullscreen
end;
====================================
从Windowed切换到全屏模式并返回的完整代码(在Win7 64bit,Aero上测试)
(编辑:也适用于Windows XP(vmware))
var
_OrgWindowedStyle: DWORD;
procedure TForm6.btnWindowedClick(Sender: TObject);
begin
Self.WindowState := wsNormal;
//set original style
SetWindowLong( Application.Handle, GWL_STYLE,
_OrgWindowedStyle);
//re-create window, to use changed style
RecreateWnd;
end;
procedure TForm6.btnFullScreenClick(Sender: TObject);
begin
_OrgWindowedStyle := 0; //clear: re-applies fullscreen mode in CreateParams
Self.WindowState := wsMaximized;
//re-create window, to use changed style
RecreateWnd;
end;
procedure TForm6.CreateParams(var Params: TCreateParams);
begin
inherited;
//first time? default fullscreen
if _OrgWindowedStyle = 0 then
begin
_OrgWindowedStyle := Params.Style;
Params.Style := //WS_POPUP or //not needed?
WS_VISIBLE
or WS_BORDER or WS_CAPTION //comment this line to remove border + titlebar
end;
end;
procedure TForm6.FormCreate(Sender: TObject);
begin
Self.WindowState := wsMaximized; //default fullscreen
end;
答案 1 :(得分:1)
尝试:
Form.Left := 0; // set the x
Form.Top := 0; // set the y
Form.Width := Screen.Width; // width of the form
Form.Height := Screen.Height; // height of the form
// and
Form.FormStyle := fsStayOnTop; // taskbar is always on top as well, setting the Style property to always on top will allow the form to cover the taskbar
如果您想隐藏标题,请将borderstyle设置为bsnone