限制窗口的最大尺寸和最小尺寸

本文介绍了一种通过重写WM_GETMINMAXINFO消息来控制窗口大小的方法,可以设定窗口的最大及最小尺寸,以及最大化时的位置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 控制窗口的大小,使得窗口控制在某一大小中,实现原理是截获Windows系统消息WM_GETMINMAXINFO,

(1)、  在Form窗体私有声明部分加上以下一行声明

  procedure   WMGetMinMaxInfo(var   msg:tmessage);message   WM_GETMINMAXINFO;

(2)、过程中加入代码如下:

procedure TForm1.WMGetMinMaxInfo(var msg: tmessage);

var

  p:^TMinmaxinfo;

begin

   p:=pointer(msg.LParam);

   p^.ptMaxSize.x:=500;        //最大化时宽度 ;

   p^.ptMaxSize.y:=500;        //最大化时高度;

   p^.ptMaxTrackSize.x:=500;   //正常窗口进行拉伸时最大宽度

   p^.ptMaxTrackSize.y:=500;   //正常窗口进行拉伸时最大高度

   p^.ptMaxPosition.X :=200;    //最大化时左上角横坐标;

   p^.ptMaxPosition.Y := 230 ;  //最大化时左上角纵坐标;

   p^.ptMinTrackSize.X := 200;   //正常窗口进行拉伸时最小宽度

   p^.ptMinTrackSize.Y := 200;   //正常窗口进行拉伸时最小高度

   msg.Result := 0 ;             //告诉Windows你改变了minmaxinfo

   inherited ;

end;

2.修改form1的constraints属性即可
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值