• Delphi窗体最大化按钮不可用情况下的最大化


    最大化按钮不可用,而且窗体最大化,我以前一直这样设置:在Object Inspector下把BorderIcons属性下的biMaximize属性设置为False,然后把WindowState属性设置为wsMaximized,结果是窗体的最大化按钮的确是隐藏了,窗体也最大化了,但是窗体也遮盖住了任务栏!

    网上也有很多人来讨论这个问题的,也有人说窗体的ALign 属性为 alClient同时窗体WindowState属性要设置为wsNormal就可以了;这样看起来的确是最大化了,但是窗体还是有点边框显示了出来,当你点击最大化的时候窗体还是会重新调整为真正的最大化。还有人在窗体创建过程使用如下代码:
    var  
      TrayWnd:  HWnd; 
      Rec: TRect;  
    begin  
      TrayWnd := FindWindow('Shell_TrayWnd',nil);
      GetWindowRect(TrayWnd,Rec);
      mainfm .Left := 0;  
      mainfm .top:=0;  
      mainfm .Width :=Screen .Width;  
      mainfm .Height :=Screen .Height-(rec.Bottom- rec.Top); 
    end;
    这样的话窗体还是可以移动的,所以还得禁止窗体移动;问题是否有些复杂化了?

    经过查看TCustomForm源码和几天的琢磨,最终发现问题也并不是很难。原来很简单!

    我的做法是:
    第一步:在工程文件里,窗体创建后的代码里添加如下代码:
    xxForm.BorderIcons := xxForm.BorderIcons - [biMaximize];
    第二步:然后是在Object Inspector里设置WindowState为:wsMaximized

    仅仅两步就可以比较完美的解决使最大化按钮不可用,又可以让窗体最大化!

    http://www.lsworks.net/article/55.html

  • 相关阅读:
    C#中的async和await
    Windows 10 error code 0x80072efd
    Winform中调用js函数
    Windows 10 x64 安装 Visual Basic 6.0 SP6
    用谷歌浏览器来当手机模拟器
    Windows 10 解决 0x80070021 错误
    正则匹配所有中英文标点
    本地网站部署注意细节
    电信光猫 路由+拨号混合设置 备忘
    Restful 支持 自定义序列化
  • 原文地址:https://www.cnblogs.com/findumars/p/4999042.html
Copyright © 2020-2023  润新知