在Delphi中,将表单的WindowState
设置为wsMaximized
,使其显示为最大化窗口。
我在源代码中看到使用WinAPI调用ShowWindow(HWND, SW_SHOWMAXIMIZED)
执行效果。
窗口显示最大化。
唯一的问题是在Windows 10下,表单试图占据整个屏幕而不是整个工作区。如果任务栏对用户隐藏的表单,则会留下底部。在Windows 7下,这可以正常工作。
这个问题是否有可能的解决方法?
答案 0 :(得分:-1)
作为一种解决方法,您可以将此代码添加到相关表单中:
procedure TfrmMain.FormResize(Sender: TObject);
var
R: TRect;
B: TPoint;
begin
R := BoundsRect;
if ( R.Top <= 0 ) and ( R.Bottom >= Screen.DesktopHeight ) then begin
R := Screen.WorkAreaRect;
B.X := GetSystemMetrics( SM_CXSIZEFRAME ) - 1;
B.Y := GetSystemMetrics( SM_CYSIZEFRAME ) - 1;
SetBounds( R.Left - B.X, R.Top - B.Y, R.Right - R.Left + B.X * 2, R.Bottom - R.Top + B.Y * 2 );
end;
end;