为了让一个窗体大小固定,普通的窗体,只需要把BorderStyle 由Sizable改为其他就可以了。
那么MDI 窗体呢?如何设置,才能让它的大小不可变?

解决方案 »

  1.   

    子窗体的BorderStyle设为3就可以了
      

  2.   

    BorderStyle 属性vbFixedSingle 1 固定单边框。可以包含控制菜单框,标题栏,“最大化”按钮,和“最小化”按钮。只有使用最大化和最小化按钮才能改变大小。 vbFixedDouble 3 固定对话框。可以包含控制菜单框和标题栏,不能包含最大化和最小化按钮,不能改变尺寸。
      

  3.   

    之前有一样的问题...
    Private Const WS_MAXIMIZEBOX As Long = &H10000
    Private Const WS_THICKFRAME As Long = &H40000
    Private Const WS_MINIMIZEBOX = &H20000
    Private Const GWL_STYLE = (-16)
    Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
    Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As LongPrivate Sub MDIForm_Load()
            Dim TempLng     As Long        TempLng = GetWindowLong(Me.hwnd, GWL_STYLE)
            TempLng = TempLng And Not WS_MAXIMIZEBOX             '最大化
            TempLng = TempLng And Not WS_MINIMIZEBOX             '最小化
            TempLng = TempLng And Not WS_THICKFRAME             '可改变大小的边框
            SetWindowLong Me.hwnd, GWL_STYLE, TempLng
    End Sub
      

  4.   

    在MDI主窗体Resize事件中写代码控制自身大小。如果还想控制子窗体的话可以使用子窗体的ControlBox属性,设置属性值为False即可。
      

  5.   

    3楼,谢谢了。
    我试了一下,确实可以屏蔽掉MDI父窗体的可变大小。