zoukankan      html  css  js  c++  java
  • 【Delphi】限制窗体大小的最大值与最小值

    QQ主窗体可以随意拉动,但在拉小时,会在达到某个最小

    宽度或高度后无法再拉动,这里有2种方法:

    1):使用VCL窗体控件的Constraints子组件,如下设置:

    procedure TForm1.FormCreate(Sender: TObject);
    begin

        //设置窗体容器高度和宽度大小的最大值和最小值,0表示无限制
        Self.Constraints.MaxHeight := 800;
        Self.Constraints.MaxWidth := 800;
        Self.Constraints.MinHeight := 200;
        Self.Constraints.MinWidth := 200;

    end;

    上面这种方法有个缺点,就是在鼠标按住窗体左边边沿拉小窗体达到最小值时,窗体会移动,解决办法就是使用下面第二种方法。

    2):处理windows消息WM_WINDOWPOSCHANGING

    该消息在窗体大小位置正在改变时触发,代码如下:

    TForm1 = class(TForm)

    private
        { Private declarations }
        procedure WndProc(var Msg: TMessage);override;

    end;

    //重载窗体过程

    procedure TForm1.WndProc(var Msg: TMessage);

    var
       NewWidth,
       NewHeight: Integer;
    begin

      case Msg.Msg of

         WM_WINDOWPOSCHANGING: //正在改变位置或大小
         begin
             NewWidth := PWindowPos(Msg.LParam)^.cx;
             NewHeight:= PWindowPos(Msg.LParam)^.cy;
             if (NewWidth>0) and (NewHeight>0) then
            if (NewWidth<200)or (NewHeight<200)or (NewWidth>800)or (NewHeight >800)   then
             PWindowPos(Msg.LParam)^.flags := SWP_NOSIZE or SWP_NOMOVE;
          end;

       end;

       inherited;  

    end;

  • 相关阅读:
    本周总结
    团队组队
    ListView之checkbox错位问题解决
    ListView
    ScrollView(滚动条)
    elementui中自定义Select选择器样式自定义
    element-ui中Select 选择器列表内容居中
    element-ui中Select 选择器去除点击时的淡蓝色边框
    vue和uni-app不同的类型绑定不同的类名
    根据年月日获取星期几
  • 原文地址:https://www.cnblogs.com/caibirdy1985/p/4232959.html
Copyright © 2011-2022 走看看