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
Delphi窗体最大化按钮不可用情况下的最大化的更多相关文章
- 【Azure 云服务】Azure Cloud Service 创建 Alert 指南 [基于旧版 Alert(Classic)不可用情况下]
问题描述 在Azure云服务(Cloud Service)创建Alert(Classic)时候遇见失败消息:"Failed to update alert testclassicalertr ...
- Delphi窗体中禁用最大化按钮
第一种方法是设置窗体的BorderIcons/biMaximize属性为False,这种方法仅让窗体的最大化按钮灰掉: 第二种方法是设置窗体的BorderStyle属性为bsDialog,这种方法使最 ...
- WPF C# 多屏情况下,实现窗体显示到指定的屏幕内
原文:WPF C# 多屏情况下,实现窗体显示到指定的屏幕内 针对于一个程序,需要在两个显示屏上显示不同的窗体,(亦或N个显示屏N个窗体),可以使用如下的方式实现. 主要涉及到的:System.Wind ...
- C# winform解决解决窗体第一次设置为最大化后,点击最大化按钮窗体无法居中问题
public frmMain() { InitializeComponent(); //解决窗体第一次设置为最大化后,点击最大化按钮窗体无法居中问题 int x = Convert.ToInt32(( ...
- WPF窗体禁用最大化按钮
禁用WPF窗体的最大化按钮可以使用Windows API改变按钮状态的方法实现.使用GetWindowLong可以得到当前按钮的状态.使用SetWindowLong可以设置按钮的状态.使用SetWin ...
- 请问下mtk双卡手机怎样发短信是怎样选择sim卡来发(双卡都可用的情况下)?
如题,我如今可以获取双卡状态,当仅仅有单一卡的时候可以指定sim卡进行发短信,可是双卡都可用的情况下,程序就默认使用卡1发短信了.即使指定了sim卡编号.
- ng-file-upload(在单文件选择,并且通过点击“上传”按钮上传文件的情况下,如何在真正选择文件之前保留上一文件信息?)
文章前面研究ng-file-upload可能涉及指令: You can use ng-model or ngf-change instead of specifying function for ng ...
- VS2015 C#取消最大化按钮,设置鼠标不可调整窗体大小
取消最大化按钮设置 设置窗体不可被鼠标调整大小
- delphi窗体按钮灰化禁用
1.使最小化按钮变灰:setwindowlong(handle,gwl_style,getwindowlong(handle,gwl_style) and not ws_minimizeb ...
随机推荐
- AngularJS 深入理解 $scope 转载▼
AngularJS 深入理解 $scope 转载▼ (2015-04-07 14:09:50) $scope 的使用贯穿整个 AngularJS App 应用,它与数据模型相关联,同时也是表达 ...
- Exception和IOException之间的使用区别
Exception和IOException之间的使用区别 先看一段代码.这段代码来自<深入剖析tomcat> public void await() { // 创建ServerSock ...
- static_cast与dynamic_cast转换 最简单的理解
3.1 static_cast用法:static_cast < type-id > ( exdivssion ) 该运算符把exdivssion转换为type-id类型,但没有运行时类型检 ...
- 解决Java调用Azure SDK证书错误javax.net.ssl.SSLHandshakeException
Azure作为微软的公有云平台,提供了非常丰富的SDK和API让开发人员可以非常方便的调用的各项服务,目前除了自家的.NET, Java, Python, nodeJS, Ruby,PHP等语言都提供 ...
- linux之SQL语句简明教程---外部连接
之前我们看到的左连接 (left join),又称内部连接 (inner join).在这个情况下,要两个表格内都有同样的值,那一笔资料才会被选出.那如果我们想要列出一个表格中每一笔的资料,无论它的值 ...
- linux之SQL语句简明教程---Alias
接下来,我们讨论 alias (别名) 在 SQL 上的用处.最常用到的别名有两种: 栏位别名及表格别名. 简单地来说,栏位别名的目的是为了让 SQL 产生的结果易读.在之前的例子中,每当我们有营业额 ...
- 【Java】使用Runtime执行其他程序
public class ExecDemo{ public static void main(String[] args) { Runtime r = Runtime.getRuntime(); Pr ...
- python安装完毕后,提示找不到ssl模块的解决方示
python安装完毕后,提示找不到ssl模块: [root@localhost ~]# python2.7.5 Python 2.7.5 (default, Jun 3 2013, 11:08:43) ...
- Rescue(bfs)
Rescue Time Limit : 2000/1000ms (Java/Other) Memory Limit : 65536/32768K (Java/Other) Total Submis ...
- Cocoapod安装使用
近期换工作.项目中推荐使用Cocoapod,把经常使用的第三方库增加到project中,大致说一下流程,标记一下. 第一步:安装 CocoaPods是跑在Ruby的软件,安装可能须要几分钟.打开你的终 ...