Option Explicit
Dim h As Long
Private Sub Form_Load()
h = Me.Height
'h = 4000
End Sub
Private Sub Form_Resize()
If Me.WindowState = vbNormal Then
   Me.Height = h '4000
End If
End Sub

解决方案 »

  1.   

    to:playyuer 
    拜托,我想知道如何用API实现to:songyangk
    能否详细些?
      

  2.   

    没有现成的API,你可自己处理WM_SIZING消息来得到你要的效果。
      

  3.   

    袁飞 Api 超级工具:
    http://ygyuan.go.163.com/
    '====================================
    '以下代码在 .bas 中
    Option Explicit
    Public OldWindowProc As LongDeclare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
    Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
    Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (pDest As Any, pSource As Any, ByVal ByteLen As Long)
    Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As LongPublic Const WM_GETMINMAXINFO = &H24Type POINTAPI
         x As Long
         y As Long
    End TypeType MINMAXINFO
            ptReserved As POINTAPI
            ptMaxSize As POINTAPI
            ptMaxPosition As POINTAPI
            ptMinTrackSize As POINTAPI
            ptMaxTrackSize As POINTAPI
    End Type
    Public Function SubClass1_WndMessage(ByVal hwnd As Long, ByVal Msg As Long, ByVal wp As Long, ByVal lp As Long) As Long
        If Msg = WM_GETMINMAXINFO Then        Dim MinMax As MINMAXINFO
            CopyMemory MinMax, ByVal lp, Len(MinMax)
            MinMax.ptMinTrackSize.x = 3975 \ Screen.TwipsPerPixelX
            MinMax.ptMinTrackSize.y = 1740 \ Screen.TwipsPerPixelY
            MinMax.ptMaxTrackSize.x = Screen.Width \ Screen.TwipsPerPixelX \ 2
            MinMax.ptMaxTrackSize.y = 3480 \ Screen.TwipsPerPixelY
            
            CopyMemory ByVal lp, MinMax, Len(MinMax)
            
            SubClass1_WndMessage = 1
            Exit Function
                    
        End If
            
        SubClass1_WndMessage = CallWindowProc(OldWindowProc, hwnd, Msg, wp, lp)
            
    End Function
    '==================================================
    '以下代码在 .frm 中Option ExplicitPrivate Const GWL_WNDPROC = (-4)
    Private Sub Form_Load()
        
        OldWindowProc = GetWindowLong(Me.hwnd, GWL_WNDPROC)
        
        Call SetWindowLong(Me.hwnd, GWL_WNDPROC, AddressOf SubClass1_WndMessage)
        
    End Sub
    Private Sub Form_Unload(Cancel As Integer)
        
        Call SetWindowLong(Me.hwnd, GWL_WNDPROC, OldWindowProc)End Sub