更改屏幕显示区

来源:互联网 发布:js时间控制器 编辑:程序博客网 时间:2024/04/30 19:12

找设置任务栏高度时发现了这些代码,保留了下来

procedure FullScreenArea;
var
  rcWork: TRect;
begin
  rcWork.Top:=0;
  rcWork.Left:=0;
  rcWork.Bottom:=GetSystemMetrics(SM_CYSCREEN);
  rcWork.Right:=GetSystemMetrics(SM_CXSCREEN);
  SystemParametersInfo (SPI_SETWORKAREA, 0, @rcWork, SPIF_SENDCHANGE);
end;

procedure StandardArea; //除了任务栏
var
  hApp: HWND;
  rcApp, rcWork: TRect;
begin
  rcWork.Top:=0;
  rcWork.Left:=0;
  rcWork.Bottom:= GetSystemMetrics(SM_CYSCREEN);
  rcWork.Right:= GetSystemMetrics(SM_CXSCREEN);

  hApp := FindWindow('Shell_TrayWnd', '');
  if hApp <> 0 then begin
    { get the size of the taskbar }
    GetWindowRect(hApp, rcApp);
    { cut the workarea to place the taskbar }
    if rcApp.Right<rcWork.Right then
      rcWork.Left:=rcApp.Right; { bar on left edge }
    if rcApp.Bottom<rcWork.Bottom then
      rcWork.Top:=rcApp.Bottom; { bar on top edge }
    if rcApp.Left>0 then
      rcWork.Right:=rcApp.Left; { bar on right edge }
    if rcApp.Top>0 then
      rcWork.Bottom:=rcApp.Top; { bar on bottom edge }
  end;

  { set workarea }
  SystemParametersInfo (SPI_SETWORKAREA, 0, @rcWork, SPIF_SENDCHANGE );
end; { StandardArea }

原创粉丝点击