如题。
函数如下。procedure OnMaxWindow(var Msg: tagMINMAXINFO); message WM_GETMINMAXINFO;procedure TMainForm.OnMaxWindow(var Msg: tagMINMAXINFO);
begin//截取最大化消息。重新设置高度。
  Msg.ptMaxSize.Y:= GetSystemMetrics(SM_CYFULLSCREEN);
end;procedure TMainForm.BmpBtn_MaxClick(Sender: TObject);
begin//通过一个图片按扭来实现最大化
  ShowWindow(Handle, SW_SHOWMAXIMIZED);
end;//GetSystemMetrics(SM_CYFULLSCREEN);截取到的高度是721,应该是对的吧。不知到为什么最大化的时候还是会盖住任务栏。
另外还有一个问题。
窗口去掉标题栏后,原本在窗口4边和右下角可以调整窗口大小的。也变的不能调整了。请问有什么方法可以实现吗? 最好效果和普通的窗口一样。普通窗口调整大小的时候有个虚线框。

解决方案 »

  1.   

    按住一个Panel拖动窗口是这样的。procedure TMainForm.pn_TitleBarMouseDown(Sender: TObject;
      Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
    begin
      ReleaseCapture;       
      Perform(WM_SYSCOMMAND, $F012, 0);
    end;是不是也可以发消息来做到?有大侠可以说下吗?
      

  2.   

    截取WM_GETMINMAXINFO消息,设置窗口的高度。
    LZ用GetSystemMetrics(SM_CYFULLSCREEN),没试过
    可以用Screen.WorkAreaWidth和WorkAreaHeight
      

  3.   

    设置窗口的Align属性为 alClient
      

  4.   

    SW_SHOWMAXIMIZED本来就不会覆盖任务栏。又不是fullscreen