1。假如一个模块Option ExplicitPublic Declare Function GetSystemMenu Lib "user32" (ByVal hwnd As Long, ByVal bRevert As Long) As Long
Public Declare Function DeleteMenu Lib "user32" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long) As Long
Public Const MF_BYCOMMAND = &H0&
Public Const MF_BYPOSITION = &H400&
'有关窗口的消息处理的API
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 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 Long
        
Const GWL_WNDPROC = (-4&)
Const WM_NCLBUTTONDBLCLK = &HA3
Const MK_LBUTTON = &H1
Const WM_DESTROY = &H2
Dim PrevWndProc&
Public Sub Init(hwnd As Long)
  PrevWndProc = SetWindowLong(hwnd, GWL_WNDPROC, AddressOf SubWndProc)
End SubPublic Sub Terminate(hwnd As Long)
  Call SetWindowLong(hwnd, GWL_WNDPROC, PrevWndProc)
End SubPrivate Function SubWndProc(ByVal hwnd As Long, ByVal Msg As Long, _
                            ByVal wParam As Long, ByVal lParam As Long) _
                            As Long
  
  If Msg = WM_DESTROY Then Terminate (Form1.hwnd)
  
  If Msg = WM_NCLBUTTONDBLCLK Then        Exit Function  End If
  
  SubWndProc = CallWindowProc(PrevWndProc, hwnd, Msg, wParam, lParam)
End Function2。窗体代码
Option ExplicitPrivate Sub Form_Load()   Call Init(Me.hwnd)End Sub
Private Sub Form_Unload(Cancel As Integer)   Call Terminate(Me.hwnd)End Sub

解决方案 »

  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 LongPrivate Const WS_MAXIMIZEBOX = &H10000Private Const GWL_STYLE = (-16)
    Private Sub Form_Load()
        Dim TempLng As Long
        
        TempLng = GetWindowLong(Me.hwnd, GWL_STYLE)
        TempLng = TempLng And Not WS_MAXIMIZEBOX '最大化
        SetWindowLong Me.hwnd, GWL_STYLE, TempLng
        
    End Sub