Private Declare Function GetSystemMenu Lib "user32" (ByVal hWnd As Long, ByVal bRevert As Long) As Long
Private Declare Function GetMenuItemCount Lib "user32" (ByVal hMenu As Long) As Long
Private Declare Function DrawMenuBar Lib "user32" (ByVal hWnd As Long) As Long
Private Declare Function RemoveMenu Lib "user32" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long) As Long
Const MF_BYPOSITION = &H400&
Const MF_REMOVE = &H1000&
private MDIFORM_Load()
Dim hSysMenu As Long, nCnt As Long
    hSysMenu = GetSystemMenu(Me.hWnd, False)    If hSysMenu Then
        nCnt = GetMenuItemCount(hSysMenu)
        If nCnt Then
            RemoveMenu hSysMenu, nCnt - 1, MF_BYPOSITION Or MF_REMOVE
            RemoveMenu hSysMenu, nCnt - 2, MF_BYPOSITION Or MF_REMOVE
            DrawMenuBar Me.hWnd
        End If
    End If
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 = &H10000
    Private Const WS_MINIMIZEBOX = &H20000
    Private Const WS_THICKFRAME = &H40000Private Const GWL_STYLE = (-16)Private Sub MDIForm_Load()
        Dim TempLng As Long
        
        TempLng = GetWindowLong(Me.hwnd, GWL_STYLE)
        'TempLng = TempLng And Not WS_MINIMIZEBOX '隐藏最小化
        TempLng = TempLng And Not WS_MAXIMIZEBOX '禁用最大化
        'TempLng = TempLng And Not WS_THICKFRAME '禁用可改变大小的边框
        SetWindowLong Me.hwnd, GWL_STYLE, TempLng
        
    End Sub
      

  2.   

    我那方法完全可以实现呀,不过这句代码写错了,加个sub
    private sub  MDIFORM_Load()'替换private MDIFORM_Load()
      

  3.   

    但是双击菜单栏依然可以还原窗体
    依然可以ReSize