mdi窗口如何使其不可改变大小没有最大化?

解决方案 »

  1.   

    Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
    Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
    Const WS_MINIMIZEBOX = &H20000
    Const WS_MAXIMIZEBOX = &H10000
    Const GWL_STYLE = (-16)Private Sub MDIForm_Load()
        Dim lWnd As Long
        lWnd = GetWindowLong(Me.hwnd, GWL_STYLE)
        
      '  lWnd = lWnd And Not (WS_MINIMIZEBOX) '最小化
        lWnd = lWnd And Not (WS_MAXIMIZEBOX) '最大化
        lWnd = SetWindowLong(Me.hwnd, GWL_STYLE, lWnd)End Sub
      

  2.   

    在上面那段代码的基础上加入Private Const SC_SIZE = &HF000&
    Private Declare Function GetSystemMenu Lib "user32" ( _
         ByVal hwnd As Long, ByVal bRevert As Long) As Long
    Private Declare Function RemoveMenu Lib "user32" ( _
         ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long) As LongPrivate Const MF_BYCOMMAND = &H0&
    Private Sub Form_Load()
        Dim mnuSys As Long
        mnuSys = GetSystemMenu(Me.hwnd, False)
        RemoveMenu mnuSys, SC_SIZE, MF_BYCOMMAND
    End Sub
      

  3.   

    你可以在form_resize
    代码写给固定的宽和高好了。。