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

    技术2022-05-19  19

    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属性即可


    最新回复(0)